2014-07-12 3 views
5

Wir haben die folgenden Zweige:
master und develop.
Wir haben einen neuen Zweig feature von develop erstellt und ein Team zugewiesen, um daran zu arbeiten.
Während der Entwicklung:Git - Was ist die beste Vorgehensweise für Teamarbeit in einem Feature-Zweig?

  • Fern develop nimmt neue Commits von anderen Teams.
  • remote feature akzeptiert neue Commits von den Teammitgliedern, die daran arbeiten.

Manchmal gibt es Hot Fixes zu develop geschoben, die in feature ebenfalls aktualisiert werden müssen.
Natürlich sollte am Ende des Zyklus feature in develop zusammengeführt werden.

Wir haben keinen einzigen Workflow, um feature und seine lokalen Kopien synchron mit develop zu halten und sicherzustellen, dass alle lokalen Kopien auf demselben Commit basieren.

Mein vorgeschlagenen Workflow ist wie folgt:

Keeping up-to-date mit develop

  1. New Commits geschoben werden develop
  2. ich rebase die feature Zweig:

    git checkout feature 
    git pull --rebase origin develop 
    git push origin feature 
    
  3. Alle lokalen feature Kopien laufen: git pull --rebase origin feature

Aktualisieren der feature Niederlassung von lokalen Kopien

  1. Ein Teammitglied seine Arbeit an der feature Zweig
  2. Er stellt sicher, dass seine lokale beendet hat Kopie ist auf dem neuesten Stand: git pull --rebase origin feature
  3. Er verschmilzt seine Commits in feature:

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

die feature Niederlassung in develop

  1. Merging ich sicherstellen, dass Funktion auf dem neuesten Stand ist mit develop:

    git checkout feature 
    git pull --rebase origin develop 
    
  2. I verschmelzen zu develop:

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

Wir tun das alles pull --rebase Zeug, um linearen Fluss zu halten und sicherzustellen, dass alle unsere Änderungen zusammengeführt werden mit vorspulen.
Wie Sie jedoch feststellen können, gibt es viele Befehle, die jedes Mal ausgeführt werden müssen.

Ist das wirklich notwendig? Machen wir es "richtig"?
Würden Sie einen anderen Fluss vorschlagen?

+0

Sie können entwerfen/Ihre eigenen implementieren git-Befehle (oder git alliases). –

+0

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

+0

Ich würde sagen, dass 'git merge local-feature' redundant ist - wenn Sie ein Rebase der lokalen Kopie über remote 'Feature' machen Zweig - das sorgt schon für das Zusammenführen Ihrer Änderungen. – antweiss

Antwort

Verwandte Themen