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
- Nuove commit sono spinti a
develop
ho Rebase ramo
feature
:git checkout feature git pull --rebase origin develop git push origin feature
Tutti
feature
copie locali corrono:git pull --rebase origin feature
Aggiornamento del ramo feature
da copie locali
- Un membro del team ha finito il suo lavoro sul ramo
feature
- Fa sicuro che il suo locale la copia è aggiornata:
git pull --rebase origin feature
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
mi assicuro funzione è in regola con
develop
:git checkout feature git pull --rebase origin develop
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?
È possibile progettare/implementare il proprio comandi git (o git alliasses). –
Controlla https://sandofsky.com/blog/git-workflow.html – Strikeskids
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