2014-07-12 6 views
5

Abbiamo i seguenti rami:
master e develop.
Abbiamo creato una nuova filiale feature su develop e assegnato un team per lavorarci.
Durante lo sviluppo:git - qual è la migliore pratica per il lavoro di gruppo su un ramo di funzionalità?

  • remoto develop accetta nuovi commit da parte di altre squadre.
  • remote feature accetta nuovi commit spinti dai membri del team che ci lavorano.

A volte ci sono hot fix spinto a develop che hanno bisogno di essere aggiornati in feature pure.
Ovviamente, alla fine del ciclo, feature deve essere unito a develop.

Non abbiamo un singolo flusso di lavoro per mantenere feature e le sue copie locali in sincronizzazione con develop e quindi assicurarsi che tutte le copie locali siano basate sullo stesso commit.

mio flusso di lavoro suggerito è il seguente:

Keeping up-to-date con develop

  1. Nuove commit sono spinti a develop
  2. ho Rebase ramo feature:

    git checkout feature 
    git pull --rebase origin develop 
    git push origin feature 
    
  3. Tutti feature copie locali corrono: git pull --rebase origin feature

Aggiornamento del ramo feature da copie locali

  1. Un membro del team ha finito il suo lavoro sul ramo feature
  2. Fa sicuro che il suo locale la copia è aggiornata: git pull --rebase origin feature
  3. Unisce i suoi commit in feature:

    git checkout feature 
    git pull origin feature 
    git merge local-feature 
    git push origin feature 
    

Unire il ramo feature in develop

  1. mi assicuro funzione è in regola con develop:

    git checkout feature 
    git pull --rebase origin develop 
    
  2. I fondersi in develop:

    git checkout develop 
    git pull origin develop 
    git merge feature 
    git push origin develop 
    

Facciamo tutto che pull --rebase roba al fine di mantenere il flusso lineare e assicurarsi che tutte le nostre modifiche vengono unite con fast-forward.
Tuttavia, come potete vedere, ci sono molti comandi da eseguire ogni volta.

È davvero necessario? Lo stiamo facendo nel modo "giusto"?
Suggeriresti un altro flusso?

+0

È possibile progettare/implementare il proprio comandi git (o git alliasses). –

+0

Controlla https://sandofsky.com/blog/git-workflow.html – Strikeskids

+0

Direi che 'git unire local-feature' è ridondante - se esegui un rebase della copia locale in cima alla 'funzione' remota branch - questo già si occupa di unire le tue modifiche. – antweiss

risposta