GIT è uno strumento fondamentale nel nostro lavoro di tutti i giorni, non devo certo essere io a dirvelo! E’ potente e versatile, e ci può supportare sia nei progetti più semplici che in quelli più complessi. Oggi voglio condividere con voi una piccola “scoperta” che abbiamo fatto poco tempo fa a proposito di GIT e Sourcetree, il client GIT di Atlassian.

I comandi GIT

Nella stragrande maggioranza dei casi il nostro utilizzo di GIT si limita ai soliti comandi principali: checkout, pull, push, e poco altro. Ma GIT non è solo questo! Ci sono tanti altri comandi che ci possono aiutare nel nostro lavoro quotidiano.

Esempio: quali file dobbiamo portare in produzione?

Su alcuni progetti sui quali non abbiamo attiva alcuna pipeline di rilascio (magari sono semplici siti in WordPress in cui abbiamo realizzato un tema personalizzato) ci capita spesso, dopo una lunga serie di modifiche (e quindi di commit), di farci la fatidica domanda: e ora che file dobbiamo portare in produzione? Certo, potremmo ogni volta cancellare tutto e ri-uploadare l’intero repository, ma in un contesto di rilasci frequenti e rapidi non è sicuramente l’approccio migliore. Dopo una rapida ricerca su Google abbiamo scoperto che GIT offre, tra i suoi comandi, qualcosa che fa al caso nostro! Dato infatti un commit di riferimento, lanciando il comando:

git diff –name-status <COMMIT_ID> HEAD

è possibile ottenere la lista di tutti i file che sono stati aggiunti/modificati/eliminati tra il commit in oggetto e l’HEAD. Comodo, no? 

Questo comando ha un solo problema, ovvero, che è un comando, e come tale non è proprio semplice da ricordare e sono sicuro che quando vi servirà non troverete più quel dannato file txt dove ve lo siete appuntato.

Sourcetree to the rescue!

Navigando tra le preferenze di Sourcetree ho scoperto che è possibile creare delle “Custom actions” che possiamo poi richiamare dall’interfaccia grafica. Vediamo ad esempio come possiamo creare una Custom action per il comando git diff che abbiamo appena visto:

  • In Sourcetree (per MacOS) aprire il menu Preferences e il tab Custom Actions
  • Premere su “Add
  • Compilare il dialog che appare come da immagine
  • Premere OK

Alcune note:

  • Nel comando abbiamo accesso ad alcune variabili di contesto (come $SHA) che dipendono dal commit che abbiamo selezionato.
  • Abbiamo selezionato “Show Full Output” perchè in questo caso specifico ci interessa vedere l’output del comando (ma in altri casi magari non è importante). 

A questo punto basta selezionare con un click destro un commit dalla history di uno dei vostri repository e sotto “Custom Actions” troverete il vostro comando personalizzato. Selezionando il comando vedrete apparire una finestra con l’output (ovvero l’elenco dei file modificati).

Concludendo

Spero di avervi lasciato qualche interessante spunto per migliorare il vostro lavoro quotidiano. Qui trovate altri articoli di questa piccola serie #devtips:

A proposito di GIT: