lavori in corsogit

collaborare nella scrittura di programmi

Quello che vediamo è uno dei tanti modi possibili di collaborare nella scrittura di software: useremo un archivio (repository) condiviso già esistente su GitHub.

software

Attualmente gli ambienti di sviluppo più diffusi supportano git, qui eseguiamo una installazione del software di base che ci permette di utilizzare git con GitHub senza bisogno di altro. È soltanto una delle tante possibilità!

I programmi da installare sono due: la versione a linea di comando di git (niente paura non la dovremo usare per forza ma fa comodo averla in caso di problemi) e il client desktop di GitHub.

serve un glossario

Scaricare il progetto

Al primo avvio GitHub Desktop richiede l'account per proseguire, poi apre la pagina iniziale in cui si possono creare nuovi repository o scaricarne di esistenti.

Nel nostro caso vogliamo scaricare il progetto visibile ad esempio all'indirizzo https://github.com/organizzazione/progetto.

  1. click su "clone a repository from the Internet..."
  2. click su URL
  3. nel campo "repository URL" scriviamo "organizzazione/progetto"
  4. prendiamo nota di cosa c'è scritto nel campo sotto "Local path" perché è il punto in cui il progetto verrà scaricato.
  5. click su "clone"

A questo punto avremo una cartella locale collegata al server remoto.

Modifiche al codice

Siccome vogliamo essere prudenti nel modificare il codice ed evitare di creare problemi a tutti gli altri che ci stanno lavorando creiamo un nuovo ramo di sviluppo.

  1. aprire GitHub Desktop
  2. selezionare il progetto (in alto a sinistra)
  3. click su "current branch"
  4. scrivere un nome utile (es: luigi_login se si sta lavorando sul login)
  5. click su "new branch"
  6. leggere il popup che si apre e se non ci sono problemi click su "create branch"

Nonostante il pulsantone blu "publish branch" adesso non ci serve farlo, lo faremo quando che avremo delle modifiche utili da caricare.

Le modifiche possono essere fatte con qualsiasi editor ci possa piacere: Eclipse, VS Code, Blocco Note, Gedit... e almeno i primi due posso essere usati per gestire anche git ma qui useremo comunque ad usare il client di GitHub.

Una volta fatte delle modifiche avremo una situazione analoga a questa:

GitHub Desktop

Nella colonna a sinistra selezionando "changes" compaiono tutti i cambiamenti (modifiche o inserimenti o rimozioni) non ancora gestiti da git e nella parte centrale selezionando il file è possibile vedere cosa è stato modificato (in rosso le cose cancellate e in verde quelle inserite).

Una volta fatti una serie di cambiamenti consistenti (magari per aggiungere una funzionalità è stato necessario cambiare alcuni file) possiamo fare un commit: questa cosa è facile:

  1. selezionare tutti i file che vogliamo includere nel commit
  2. nella casella in basso (nell'esempio c'è "Update index.html") va scritta una sintesi di quello che si è fatto è obbligatoria, non metterla creerà problemi alle altre persone che collaborano con noi.
  3. nello spazio più in basso possiamo mettere una descrizione più articolata
  4. click su "commit to ____"

Una volta fatto questo non avremo più cambiamenti visualizzati e potremmo farne altri se vogliamo e procedere allo stesso modo. Tieni presente che questi cambiamenti sono stati registrati sul nostro computer ma non sul server remoto di GitHub e i nostri colleghi non potranno vederli

Pubblicare i cambiamenti

Dopo aver fatto alcuni cambiamenti vorremo caricare il tutto nel repository on-line, basta far click su "Publish branch"... a patto di essere autorizzati a farlo, in caso contrario riceveremo un messaggio di errore e per risolvere la cosa sarà necessario farci aggiungere tra i collaboratori dal proprietario del repository fornendogli il proprio username (ad oggi inserendo l'email non trova gli utenti).

Da qui in avanti ogni altro commit (o gruppo di commit) potrà essere caricato sul server facendo click su "push origin".

Pull request

Una volta finito il lavoro vorremmo che tutto quello che abbiamo fatto entri a far parte del progetto principale... ma non è detto che anche il proprietario lo voglia! In questo caso possiamo fare un "pull request".

  1. aprire un browser e andare sul nostro progetto su GitHub
  2. al centro della pagina fare click sul simbolo dei merge: merge
  3. nell'elenco dei rami far click su "Nel pull request" alla destra del ramo che vogliamo fondere nella linea di sviluppo principale
  4. la pagina che appare va osservata con tanta attenzione!
  5. guardare in basso l'alengo delle modifiche
  6. riempire titolo e oggetto della modifica: se quello che viene scritto qui sembra inutile/incomprensibile è probabile che il pull venga rifiutato.
  7. click su "create pull request"

A questo punto quando la richiesta verrà approvata le modifiche entreranno a far parte del ramo principale di sviluppo.

Aggiornamenti

A questo punto non ci resta che tenere d'occhio l'email per vedere se la nostra richiesta è stata accettata, una volta andata a buon fine (speriamo) basta riaprire GitHub Desktop e spostarsi sul ramo "master", aggiornare lo stato (facendo click su "fetch origin" sulla destra) e poi fare "pull origin".

Eventuali problemi

Proxy

se durante il download del progetto compare un errore tipo unable to access '...' oppure Couldn't resolve host '...'. è possibile che il problema dipenda dalla rete locale che fa uso di un proxy.

Per risolvere il problema dovrebbe bastare aprire la linea di comando e scrivere qualcosa come (ovviamenter con i parametri della vostra rete):

git config --global http.proxy http://192.168.1.254:3128
git config --global https.proxy http://192.168.1.254:3128

Disinstallazione

Se disinstalli GitHub Desktop e vuoi far pulizia ricordari di cancellare la cartella C:\Users\test\AppData\Roaming\GitHub Desktop.