Installazione Fork
Cos’è Fork
L’applicativo Fork è un client GIT, cioè un software desktop, che offre un’interfaccia grafica intuitiva e semplificata per l’esecuzione dei comandi GIT, disponibile per Windows e MAcOS.
Per scaricare Fork è sufficiente collegarsi al seguente link https://fork.dev/ e cliccare sul pulsante di download riferito al proprio sistema operativo.
Una volta scaricato il file eseguibile, per lanciare la procedura guidata prevista basterà fare doppio click sull’installer e seguire le impostazioni di default.
Comandi Principali
FORK offre una gamma più ampia di funzionalità oltre a quelle mostrate in questa breve guida. Per una descrizione più esaustiva e per ulteriori informazioni su funzioni avanzate e comandi aggiuntivi si consiglia di consultare la documentazione ufficiale di FORK.
Clonare un repository GIT
Per clonare un repository GIT remoto esistente procedere come di seguito:
- Accedere al repository GIT remoto di riferimento (nel caso di repository di progetto accedere a https://gitlab.com/geowebframework/gwprojects)
- Selezionare dalla lista di tutti i repository disponibili, quello di interesse
- Dalla maschera principale del progetto GIT, selezionare Clone
- Copiare il link https
- Aprire il software Fork
- Cliccare su File → Clone e incollare in Repository Url il link appena copiato
- Repository Url: è l'url del repository remoto. Incollare qui il link appena copiato
- Parent Folder: è la cartella su cui sarà creata la copia del repository selezionato (Esempio: C:\project\ se l’applicativo Fork e il repository locale si trovano nella stessa macchina, altrimenti se si desidera copiare il prodotto nel server di sviluppo usando Fork installato nel proprio PC, assicurarsi prima che il server sia raggiungibile da questo e scrivere il path corrsipondente al server specificato Esempio: \\{ip server}\c$\Projects)
- Name: è il nome del progetto Git (per comodità si consiglia di scegliere lo stesso nome del repository remoto)
- Cliccare su Clone e attendere il termine del processo
Aprire un repository locale
Se è stato già clonato un repository remoto in locale, è possibile aprirlo direttamente su Fork.
- Aprire Fork
- Selezionare File ⇒ Open Repository
- Scegliere la cartella dove si trova il repository GIT da importare
- Fare click su Seleziona cartella
Fetch
Il comando FETCH serve per ottenere gli ultimi cambiamenti dal repository remoto senza applicarli direttamente al repository locale.
Per eseguire il comando “fetch”, fare click sull'apposito pulsante disponibile nella barra degli strumenti: a questo punto FORK contatterà il repository remoto e scaricherà le informazioni sui nuovi commit, nuovi branch e altri riferimenti che sono stati aggiornati nel repository remoto. Questi dati saranno memorizzati nel repository locale, ma i file di lavoro non subiranno alcuna modifica.
L'utilizzo del comando “fetch” è utile per tenere il repository locale aggiornato con le ultime modifiche del repository remoto, in modo da poter esaminare i nuovi commit, confrontarli con il lavoro locale e decidere se integrarli nel flusso di lavoro.
Dopo aver eseguito il comando “fetch”, è possibile utilizzare il comando PULL per combinare i cambiamenti scaricati con il repository locale, oppure esaminarli e decidere come gestirli manualmente.
Pull
Il comando PULL in FORK serve per ottenere gli ultimi cambiamenti dal repository remoto e applicarli direttamente al repository locale. Per eseguire il comando “pull”, fare click sull'apposito pulsante disponibile nella barra degli strumenti:
Quando si esegue il comando “pull”, FORK effettua inizialmente un'operazione di fetch per ottenere le informazioni sui nuovi commit, nuovi branch e altri riferimenti che sono stati aggiornati nel repository remoto. Successivamente, applica automaticamente le modifiche scaricate al branch locale corrente, integrando così gli ultimi cambiamenti nel proprio lavoro.
L'utilizzo del comando “pull” è utile per sincronizzare il repository locale con il repository remoto, assicurandosi che il proprio lavoro sia aggiornato con le ultime modifiche effettuate dagli altri collaboratori.
Tuttavia, è importante notare che se ci sono conflitti tra le modifiche effettuate localmente e quelle scaricate dal repository remoto, si dovrà risolvere manualmente questi conflitti prima che il comando “pull” possa essere completato correttamente. FORK fornirà strumenti per gestire i conflitti e per aiutare a integrare le modifiche in modo appropriato attraverso il confronto diretto e puntuale dei singoli file e delle singole modifiche. Questa operazione si chiama Merge.
In sintesi, il comando “pull” è una combinazione di due operazioni: fetch per ottenere gli ultimi cambiamenti dal repository remoto e merge per applicare automaticamente queste modifiche al proprio branch locale.
Merge
Quando si verifica un conflitto durante l'esecuzione del comando “pull” in FORK, sarà necessario risolvere manualmente tali conflitti attraverso il processo di MERGE. Ecco come procedere:
- Dopo aver eseguito il comando “pull” e rilevato i conflitti, FORK mostrerà una lista dei file interessati ai conflitti.
- Per risolvere i conflitti, fare clic su Repository → Conflicts. Verrà visualizzata una schermata che elenca i file in conflitto.
- Selezionare il file in conflitto su cui si desidera lavorare. FORK mostrerà il contenuto del file con le sezioni in conflitto evidenziate.
- Modificare il file manualmente per risolvere i conflitti. È possibile scegliere di accettare una versione del conflitto, combinare le modifiche o apportare ulteriori modifiche secondo necessità. L'obiettivo è ottenere un risultato che unifichi le diverse versioni e risolva il conflitto.
- Dopo aver apportato le modifiche necessarie, fare clic su “Mark as resolved” per segnalare che è stato risolto il conflitto per quel file specifico. Si può quindi passare ad altri file in conflitto e ripetere il processo di risoluzione.
- Una volta che tutti i conflitti sono stati risolti e segnalati come tali, eseguire il comando “commit” per confermare le modifiche di risoluzione dei conflitti.
- Infine, eseguire il comando “push” per inviare le modifiche al repository remoto e condividere il lavoro risolto con gli altri collaboratori.
N.B. la risoluzione dei conflitti richiede attenzione e comprensione delle modifiche che sono state apportate sia nel tuo ramo locale che nel repository remoto. È bene assicurarsi sempre di esaminare attentamente i conflitti e prendere decisioni coerenti sulla risoluzione per mantenere l'integrità del proprio progetto.
Commit
La sezione “Modifiche” di Fork consente di selezionare i file modificati che si desidera includere in un commit. È possibile inserire un messaggio di commit descrittivo che spiega le modifiche apportate. Fork eseguirà quindi il commit delle modifiche selezionate nel repository locale.
- Nella sezione delle modifiche cliccare su Local Changes
- Nella sezione Unstaged scegliere i file oggetto del commit: selezionare il file e fare click su Stage. Ripetere l'operazione per ogni file, oppure selezionare i file tenendo premuto il pulsante Ctrl e fare click su Stage dopo la selezione. Se tutti i file oggetto di modifica devono essere committati scegliere l'apposito pulsante Stage All
N.B è buona pratica non fare commit troppo grandi. Meglio più commit con meno file
- Scrivere un opportuno messaggio di commit che sia esaustivo delle modifiche effettuate
- Cliccare su Commit
Dopo aver effettuato il commit, puoi scegliere di sincronizzare le modifiche con il repository remoto utilizzando il comando push o di mantenere le modifiche solo nel repository locale fino a quando non si è pronti per condividerle con gli altri.
Effettuare commit regolari e descrittivi è una pratica importante per tenere traccia delle modifiche e mantenere un buon flusso di lavoro durante lo sviluppo del progetto.
Push
Il comando PUSH in FORK serve per inviare i commit locali al repository remoto, aggiornando così il repository remoto con le modifiche fatte.
Dopo aver effettuato uno o più commit locali nel proprio repository locale, eseguendo il comando “push” in FORK, i commit verranno caricati sul repository remoto corrispondente.
Se qualcun altro ha effettuato commit nel repository remoto nello stesso branch in cui si sta lavorando, potrebbe essere necessario eseguire il comando “pull” prima di eseguire il “push”. Questo serve per ottenere gli ultimi cambiamenti dal repository remoto e risolvere eventuali conflitti prima di inviare i propri commit.
Il comando “push” è fondamentale per la collaborazione su un progetto, poiché consente di condividere le modifiche effettuate localmente con il resto del team e mantenere il repository remoto aggiornato con le ultime modifiche.