Impara a utilizzare Git con Bitbucket Cloud

Impara a creare branch con Bitbucket Cloud

Obiettivo

Questo tutorial ti insegnerà le basi per creare, lavorare, rivedere e unire branch usando Git e Bitbucket Cloud.

Ora Pubblico Prerequisiti
35 minuti Conosci già il flusso di lavoro di base di Git Hai installato Git
Hai un account Bitbucket

Questo tutorial fa per te se conosci già il flusso di lavoro di base di Git, tra cui le procedure per:

  • Clonare: copiare il repository remoto in Bitbucket Cloud sul tuo sistema locale
  • Aggiungere o gestire temporaneamente: accettare le modifiche apportate e prepararle per aggiungerle alla tua cronologia git
  • Eseguire il commit: aggiungere file nuovi o modificati alla cronologia git per il repository
  • Eseguire un pull: apportare le nuove modifiche che altri hanno aggiunto al repository nel tuo repository locale
  • Eseguire un push: inviare le modifiche dal tuo sistema locale al repository remoto

Se non conosci le nozioni di base di Git, non preoccuparti, dai un'occhiata al nostro tutorial Impara Git con Bitbucket Cloud e sarai pronto in pochissimo tempo.

Perché la ramificazione è importante

La ramificazione è uno dei modi migliori per ottenere il massimo da Git per il controllo delle versioni. La ramificazione in Git ti consente di:

  • Avere diversi team che lavorano contemporaneamente da un unico repository.
  • Avere membri del team in qualsiasi parte del mondo che utilizzano Bitbucket Cloud per collaborare.
  • Avere più linee di sviluppo in esecuzione contemporaneamente indipendentemente l'una dall'altra senza bisogno di blocchi del codice.

Esegui la configurazione

Dato che vogliamo che tu ti senta come se stessi lavorando in un team, in un repository Bitbucket comune, ti faremo eseguire un fork di un repository pubblico fornito da noi.

Che cosa significa eseguire un fork?

Il fork è un altro modo per salvare un clone o una copia. Il termine eseguire un fork (in programmazione) deriva da una chiamata di sistema Unix che crea una copia di un processo esistente. Quindi, a differenza di un branch, un fork è indipendente dal repository originale. Se il repository originale viene eliminato, il fork rimane. Se esegui un fork di un repository, ottieni quel repository e tutti i suoi branch.

  1. Vai a tutorials/tutorials.git.bitbucket.org
  2. Fai clic su +> Fork this repository (Esegui fork +> di questo repository) sul lato sinistro dello schermo.
  3. Modifica il nome in modo che sia univoco per il tuo team, quindi fai clic su Repository fork (Fork del repository).
  4. Crea una directory per il repository in cui sia facile navigare. Potresti scegliere qualcosa di simile a questo:
     $ mkdir test-repositories $ cd test-repositories/ $ test-repositories
    L'esempio precedente crea la directory test-repositories utilizzando il comando mkdir (make directory) e passa a tale directory utilizzando il comando cd (change directory).
  5. Clona il repository di cui hai eseguito il fork nella directory che hai appena creato. Dovrebbe avere il seguente aspetto:
     $ git clone https://dstevenstest@bitbucket.org/dstevenstest/mygittutorial.bitbucket.io.git Clonazione in 'mygittutorial.bitbucket.io'... remoto: Conteggio degli oggetti: 12392, fatto. remoto: Compressione degli oggetti: 100% (12030/12030), fatto. remoto: totale 12392 (delta 8044), riutilizzato 564 (delta 360) Ricezione di oggetti: 100% (12392/12392), 2,72 MiB | 701,00 kB/s, fatto. Risoluzione delta: 100% (8044/8044), fatto. $ cd mygittutorial.bitbucket.io/
    Che clona il repository utilizzando il comando git clone e crea la directory creata dal clone mygittutorial.git.bitbucket.io.

Crea un branch e modifica qualcosa utilizzando il flusso di lavoro ramificato

Aggiungerai una citazione sul tuo sito web in questo branch.

  1. Crea un branch con il comando git branch .
     $ git branch test-1
  2. Esegui il checkout del branch che hai appena creato usando il comando git checkout .
     $ git checkout test-1 Passato al branch «test-1»
  3. Elenca i branch di cui disponi localmente usando il comando git branch .
     $ git branch principale * test-1
  4. Effettua un aggiornamento al file editme.html aggiungendo una citazione. Puoi utilizzare qualcosa di simile a quanto segue:
      
    Questa è una citazione e mi piace.
    una citazione: L'arte di citare< /citare>
  • Aggiungi quella modifica.
     git add editme.html
    Nota: la tua modifica non è stata salvata nella cronologia di Git ma è in stato di attesa. L'abbiamo appreso in Salvare le modifiche.
  • Conferma la modifica con un messaggio di conferma descrittivo.
     git commit editme.html -m'ha aggiunto una nuova citazione' [test-1 063b772] ha aggiunto una nuova citazione 1 file modificato, 3 inserimenti (+), 3 eliminazioni (-)
    Nota: ora le modifiche fanno parte della cronologia di Git come singolo "commit". Lo abbiamo appreso in Salvare le modifiche.
  • Invia la modifica a Bitbucket usando il comando git push.
     push git irreversibile: l'attuale test-1 del branch non ha un branch upstream. Per eseguire il push del branch attuale imposta il remoto come upstream, usa git push —set-upstream origin test-1
    Vedrai un errore perché la prima volta che apri un nuovo branch che hai creato localmente devi designare tale branch.
  • Esegui il push del branch e apporta modifiche usando il comando git push branch .
     $ git push origin test 1 Conteggio degli oggetti: 3, fatto. Compressione delta con utilizzo di un massimo di 8 thread. Compressione degli oggetti: 100% (3/3), fatto. Scrittura di oggetti: 100% (3/3), 363 byte | 0 byte, fatto. Totale 3 (delta 2), riutilizzato 0 (delta 0) remoto: remoto: crea una richiesta pull per test-1: remoto: https://bitbucket.org/dstevenstest/dans.git.bitbucket.org/pull-requests/new?source=test-1&t=1 remoto: A https://bitbucket.org/dstevenstest/dans.git.bitbucket.org.git * [nuovo branch] test-1 -> test-1
    Questo indica al sistema che il repository di origine è la destinazione di questo nuovo branch.
  • Apri il tuo repository tutorial e fai clic su Branch. Ora dovresti vedere sia il branch principale sia il branch test-1. Dovrebbe avere il seguente aspetto:
  • Informazioni sui branch di Bitbucket

    Crea, recupera e controlla un branch remoto

    Quando lavori in un team, ti capiterà di richiamare o recuperare i branch creati da altri membri del team ed eseguire il push su Bitbucket. Questo esempio ti fornirà alcune delle nozioni di base per creare e lavorare con i branch creati da altri.

    1. BranchVai al tuo repository dei tutorial in Bitbucket e fai clic su Branch. Dovresti vedere quanto segue: Branches
    2. Fai clic su Crea branch, assegna un nome al branch test-2 e fai clic su Crea.
    3. Copia il comando git fetch nella finestra di dialogo di checkout del branch. Sarà probabilmente simile a quanto segue:
       $ git fetch && git checkout test-2 From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org * [nuovo branch] test-2 -> origin/test-2 Branch test-2 configurato per tracciare il test del branch remoto test-2 dall'origine. Passato a un nuovo branch «test-2»
    4. Usa il comando git branch nel tuo terminale. Dovresti vedere un elenco di branch simile a questo:
       $ git branch principale test-1 * test-2
      Il branch con l'asterisco * è il branch attivo. Questo è fondamentale da ricordare quando lavori in un flusso di lavoro ramificato.
    5. Usa il comando git status e vedrai qualcosa del genere:
       stato $ git Sul test-2 del branch Il tuo branch è aggiornato con «origine/test-2». niente da sottoporre a commit, albero di lavoro vuoto
      Puoi vedere in che branch ti trovi e che il branch è attualmente aggiornato con il branch remoto (di origine).
    6. Usa il comando git checkout per riportare l'attenzione sull'altro branch. L'output dovrebbe avere il seguente aspetto:
       $ git checkout test-1 Passato al branch «test-1» Il tuo branch è in anticipo rispetto a «origin/test-1» di 3 commit. (usa" git push" per pubblicare i tuoi commit locali)
      Una delle cose più importanti da ricordare quando lavori con i branch è che devi assicurarti che il branch a cui stai apportando le modifiche sia il branch corretto.

    Invia, modifica e crea una pull request

    Ora è il momento di far esaminare la tua prima modifica e incorporare il branch.

    1. Fai clic su Create pull request (Crea pull request). Puoi vedere il tuo branch test-1 come branch di origine e principale nel branch di destinazione.

      Poiché abbiamo creato questo repository eseguendo il fork di un repository esistente, la destinazione è impostata sul branch principale del repository di cui abbiamo eseguito il fork.

      Per correggere questo problema dovrai cambiare il branch di destinazione del repository (il branch in cui unirai le modifiche) da tutorials/tutorials.git.bitbucket.org al tuo repository.

      Pull request

      Aggiungerai anche revisori del tuo team alla pull request. Maggiori informazioni sulle pull request

    2. Clicca su Create pull request (Crea pull request).
    3. Scrivi un commento nella pull request selezionando una riga nel diff (l'area in cui è visualizzata la modifica apportata al file editme.html ).
    4. Fai clic su Approva in alto a sinistra nella pagina. Ovviamente, in una vera pull request avresti dei commenti da parte dei revisori
    5. Fai clic su Unisci.
    6. (Facoltativo) Aggiorna il messaggio di conferma con maggiori dettagli.
    7. Seleziona la strategia Merge commit Merge tra le due opzioni:
      • Merge commit: mantiene tutti i commit dal tuo branch di origine e li rende parte del branch di destinazione. Questa opzione equivale a inserire git merge —no-ff nella riga di comando.
      • Squash: combina i tuoi commit quando unisci il branch sorgente nel branch di destinazione. Questa opzione equivale a inserire git merge —squash nella riga di comando.
      Scopri di più per i dettagli su questi due tipi di strategie di fusione.
    8. Fai clic su Commit e vedrai come il branch che hai appena unito si inserisce nel più ampio schema di modifiche.

    Elimina un branch e inserisci il principale nel branch operativo locale

    Ora hai seguito il flusso di lavoro di base per la ramificazione e la tua modifica è nel branch principale. L'ultima cosa che impareremo è come eliminare il branch che hai appena unito, estrarre il branch principale aggiornato e unire il branch principale aggiornato nel tuo branch test-2.

    Perché eliminare il branch?

    Ricorda che la ramificazione in Git è diversa da SVN o sistemi di controllo delle versioni simili poiché utilizza i branch sia come branch di lunga durata, come branch principale e di sviluppo, sia come branch di sviluppo a breve termine, come gli esempi che utilizziamo in questo tutorial. Per questo motivo, non è una cattiva idea eliminare i branch locali per mantenere più pulito l'ambiente locale.

    Perché estrarre il principale e fonderlo in test-2?

    Lo stiamo usando come esempio del tuo lavoro su un repository in cui sta lavorando un altro membro del team. È una buona idea inserire di tanto in tanto le modifiche nel tuo branch di lavoro per evitare conflitti di fusione nelle pull request.

    1. Apri il tuo terminale ed esegui il comando git status ; il risultato dovrebbe essere simile a questo:
       stato $ git Sul test-1 del branch niente da sottoporre a commit, albero di lavoro vuoto
      Puoi vedere che ti trovi nel branch che hai appena usato per apportare le modifiche e che non sono state apportate modifiche. Siamo pronti a sbarazzarci di quel branch ora che abbiamo finito questo lavoro.
    2. Passa al branch principale eseguendo il comando git checkout main . Il risultato dovrebbe avere il seguente aspetto:
       git checkout principale Passato al branch «principale» Il tuo branch è aggiornato con «origine/principale».
      Hai notato che il messaggio dice che sei aggiornato? Questo è solo il tuo branch locale. Lo sappiamo perché abbiamo appena unito una modifica in principale e non l'abbiamo trasferita dal repository remoto al nostro sistema locale. Questo è quello che faremo dopo.
    3. Esegui il comando git pull . Il risultato dovrebbe avere il seguente aspetto:
       $ git pull remoto: Conteggio degli oggetti: 1, fatto. remoto: totale 1 (delta 0), riutilizzato 0 (delta 0) Decompressione degli oggetti: 100% (1/1), fatto. Da https://bitbucket.org/dstevenstest/dans.git.bitbucket.org 2d4c0ab.. dd424cb principale -> origine/principale Aggiornamento 2d4c0ab.dd424cb Avanzamento rapido editme.html | 6 +++— 1 file modificato, 3 inserimenti (+), 3 eliminazioni (-)
      Quello che è successo è che quando estrai le modifiche dal repository remoto, git esegue una fusione rapida per integrare le modifiche che hai apportato. Elenca anche quanti file e righe in quel file sono stati modificati.
    4. Esegui il comando git branch -d {branch_name} per rimuovere il branch test-1. Il risultato dovrebbe avere il seguente aspetto:
       $ git branch -d test-1 Test-1 del branch eliminato (era 063b772)
      Puoi vedere che ha eliminato il branch e qual è stato l'ultimo hash di commit per quel branch. Questo è il modo sicuro per eliminare un branch perché git non ti permetterà di eliminare il branch se presenta modifiche non salvate. Devi però sapere che ciò non impedirà l'eliminazione di modifiche salvate nella cronologia di git ma non unite in un altro branch.
    5. Passa al branch test-2 usando il comando git checkout .
       $ git checkout test-2 Passato al branch «test-2» Il tuo branch è aggiornato con «origine/test-2».
    6. Unisci il branch principale nel tuo branch di lavoro usando il comando git merge main test-2 . Il risultato dovrebbe avere il seguente aspetto:
       $ git merge main test-2 Aggiornamento 2d4c0ab.dd424cb Avanzamento rapido editme.html | 6 +++— 1 file modificato, 3 inserimenti (+), 3 eliminazioni (-)
      È importante ricordare quanto segue:
      • Il branch attivo è importante. Se vuoi unire il principale in test-2, test-2 deve essere sottoposto a checkout (attivo). Lo stesso vale se vuoi unire test-2 al principale: devi fare il checkout del principale.
      • Per vedere quale branch è attivo in qualsiasi momento usa git branch e il branch attivo presenterà un asterisco, oppure, usa git status per sapere in quale branch ti trovi e se ci sono modifiche locali in sospeso.

    Ci auguriamo che tu abbia imparato qualcosa sulla ramificazione e sui comandi coinvolti. Rivediamo gli argomenti che abbiamo trattato:

    Rivedi il flusso di lavoro di ramificazione

    Il flusso di lavoro di Git Feature Branch è un modo efficiente per iniziare a lavorare con il tuo team in Bitbucket. In questo flusso di lavoro, tutto lo sviluppo delle funzionalità avviene in branch separati dal branch principale. Di conseguenza, più sviluppatori possono lavorare sulle proprie funzionalità senza toccare il codice principale.

    Inizia con il branch principale

    Questo flusso di lavoro ti aiuta a collaborare al tuo codice con almeno un'altra persona. Se il tuo Bitbucket e i tuoi repository locali sono aggiornati, sei pronto per iniziare.

    Crea un nuovo branch

    Usa un branch separato per ogni funzione o problema su cui lavori. Dopo aver creato un branch, esegui un checkout a livello locale, in modo che tutte le modifiche apportate avvengano su quel branch.

    Aggiorna, aggiungi, conferma ed esegui il push delle modifiche

    Lavora sulla funzione ed esegui il commit come faresti ogni volta che usi Git. Quando sei pronto, esegui il push dei tuoi commit, aggiornando il branch delle funzionalità su Bitbucket.

    Ottieni una revisione del codice

    Per ottenere feedback sul tuo codice, crea una pull request in Bitbucket. Da lì, puoi aggiungere revisori e assicurarti che tutto sia a posto prima della fusione.

    Risolvi il feedback

    Ora i tuoi colleghi possono commentare e approvare. Risolvi i loro commenti a livello locale, conferma ed esegui il push delle modifiche suggerite in Bitbucket. I tuoi aggiornamenti vengono visualizzati nella pull request.

    Unisci il tuo branch

    Prima della fusione, potrebbe essere necessario risolvere i relativi conflitti se altri hanno apportato modifiche al repository. Quando la tua pull request è approvata e non contiene conflitti, puoi aggiungere il tuo codice al branch principale. Esegui la fusione dalla pull request in Bitbucket.

    Questo tutorial è limitato nella capacità di mostrare in che modo i branch rendono i team più efficaci. Esistono diversi approcci alla ramificazione e alcuni di questi sono illustrati in: Confronto dei flussi di lavoro.