L’opzione rebase in Git

Scegliendo l’opzione rebase in Git per riportare e modifiche di main su feature, l’intero branch feature viene “spostato”, ricreando i singoli commit che ne facevano parte. git checkout feature git rebase main Opzione Rebase Il vantaggio dell’opzione rebase in Git è proprio la possibilità di ottenere una history di progetto più chiara. Non […]
L’opzione merge in Git

Dopo aver introdotto i comandi git rebase in Git e git merge in Git e dopo aver introdotto possibili strategie di workflow, vediamo più nel dettaglio come e perché scegliere l’uno o l’altro comando in base al progetto, all'esigenza e alla finalità che si vuole raggiungere. Molto spesso, infatti, l’attività di rebase è etichettata come […]
Tagging & Versioning in Git

Sempre considerando che Git in sé non è prescrittivo nell’uso dei tag – sono etichette che puntano a un singolo commit – per una gestione efficiente di un progetto è opportuno definire alcune guideline relative all’uso dei tag in Git. Possiamo dire che i tag di Git sono abitualmente usati per indicare una determinata versione […]
Messaggi di commit in Git

Sebbene nel tempo si siano identificati con “git workflow” una serie di indicazioni relative all’uso di branch e strategie per il merge, non bisogna dimenticare che contribuiscono a un uso produttivo di Git anche strategie e convenzioni legati all’uso dei messaggi di commit e all’uso dei tag per il versionamento. Anche su tale aspetto Git […]
Gitflow in Git

Un'ultima doverosa sezione sul Git workflow noto come “GitFlow”. Come abbiamo detto all’inizio di questa sezione e di questa guida, Git in sé non è prescrittivo sull’uso di determinate funzioni, ma lascia allo sviluppatore web e al team trovare il flusso più adatto alle sue esigenze. GitFlow è stato, forse, il primo workflow proposto alla […]
Approccio “forking” in Git

I workflow visti finora erano accomunati dal fatto di avere comunque un singolo repository remoto di riferimento, che poteva eventualmente usare i branch per isolare gli sviluppi. Nell’approccio “forking” invece, viene creato un repository separato da quello principale, creando, quindi, una nuova e separata struttura di collaborazione. Questo tipo di approccio è spesso presente nei […]
Workflow Git trunk-based

Il Workflow Git trunk-based è, per certi versi, l’unione dei due precedenti e cerca di unire diverse esigenze e riflessioni legate allo sviluppo software moderno. Il workflow trunk-based in Git segue l’indicazione di facilitare lo sviluppo concorrente su un singolo branch principale, offrendo diversi suggerimenti su come ottenere questo risultato. Tali suggerimenti sono anche non […]
Workflow Git feature branching

Vengono usati i branch per isolare lo sviluppo di una funzione o fix rispetto al branch principale del repository. Solo una volta completato lo sviluppo la feature viene riportata sul branch principale. I feature branch in Git sono uploadati sull’unico repository remoto e più sviluppatori possono contribuire all’implementazione della feature. Il “merge” della feature nel […]
Workflow Git centralizzato

Git è il sistema di version control più usato al mondo, anche grazie alla sua estrema flessibilità nell’adattarsi al flusso di lavoro di ciascuno e del team. Nel tempo, sono emerse buone pratiche e raccomandazioni sull’uso efficiente di Git, al fine di poter lavorare in modo coerente e produttivo. Tali pratiche prendo il nome di […]
Capire meglio il contenuto dei commit durante un conflitto di merge in Git

Durante la risoluzione di un conflitto di merge in Git è particolarmente rilevante capire cosa è successo nelle due diverse versioni e se e come i due diversi contenuti possono essere riconciliati. Le due versioni potrebbero, infatti, contenere codice che si comporta in maniera molto diversa ed è importante capire cosa si sta approvando prima […]
Risolvere un merge conflict in Git

Abbiamo accennato, in precedenza, alla possibilità che durante l’esecuzione di un git pull, git merge o git rebase in Git si possano verificare dei conflitti che impediscono a Git di portare a termine automaticamente l’operazione. Un conflitto nell’accezione dei version control system è una situazione per la quale il sistema sta provando a integrare due […]
Il comando Git merge in Git

Il comando git merge in Git serve a combinare più sequenze di commit in una cronologia unificata. Nei casi d’uso più frequenti, git merge viene utilizzato per combinare due branch. Abitualmente, specie per chi utilizza piattaforme come GitHub o GitLab per come server per lo sviluppo condiviso, le operazioni di merge vengono effettuate direttamente dalla […]
Il comando Git checkout in Git

Abbiamo già anticipato alcuni utilizzi del comando git checkout, vediamo, ora, come usarlo più nel dettaglio relativamente allo “switch” da un branch a un altro. Nella pratica, il checkout di un branch aggiorna i file nella working directory in modo che corrispondano alla versione memorizzata in quel branch e istruisce Git di registrare tutti i […]
Il comando Git branch in Git

Git memorizza un branch come riferimento a un commit. In questo senso, un branch rappresenta la punta di una serie di commit, non è un contenitore per i commit. La cronologia di un branch viene estrapolata attraverso le relazioni tra commit, che ricordiamo essere l’unione di uno snapshot del contenuto del repository in un certo […]
Il comando Git pull in Git

Abbiamo visto, all’inizio di questa sezione, come recuperare nuovi contenuti da un repository remoto tramite il comando git fetch. Vediamo ora più nel dettaglio come riportare tali modifiche nella propria working copy tramite il comando git pull. L’unione delle modifiche dal repository remote al repository locale è un’attività comune nei flussi di lavoro di collaborazione […]
Il comando Git push in Git

Il comando git push in Git serve a fare l’upload delle modifiche locali su un repository remoto. In questo modo, i commit locali sono resi disponibili agli altri collaboratori del progetto, che potranno recuperarli tramite un fetch e incorporarli nei rispettivi repository locali. Nella modalità standard, git push invia solo le nuove modifiche, poiché Git […]
Il comando Git fetch in Git

Abbiamo visto come Git permetta a ogni repository di tenere traccia dei repository (remoti) a cui è connesso tramite il comando git remote. La sincronizzazione delle modifiche tra diversi repository è effettuata da altri comandi, ognuno dei quali ha la sua specifica responsabilità. Il comando Git fetch in Git Lo scopo di git fetch […]
Il comando Git remote in Git

Quelle descritte nei capitoli precedenti, ed altre modalità di collaborazione sono possibili grazie ai tracked repository (o remote repository) che è possibile collegare a ogni repository Git tramite il comando git remote. Il comando git remote in git, nella realtà, non si occupa di effettuare l’effettivo acceso o sync a tali repository remoti, ma gestisce […]