Kurz gesagt: Best Practice ist Verzweigen, häufiges Zusammenführen und immer synchron bleiben .
Es gibt ziemlich klare Konventionen, um Ihren Code in getrennten Zweigen vom Hauptzweig zu halten:
- Sie sind dabei, wichtige oder störende Änderungen umzusetzen
- Sie werden einige Änderungen vornehmen, die möglicherweise nicht verwendet werden
- Sie möchten mit etwas experimentieren, von dem Sie nicht sicher sind, ob es funktioniert
- Wenn Sie aufgefordert werden, sich zu verzweigen, haben andere möglicherweise etwas, was sie im Master tun müssen
Als Faustregel gilt, dass Sie nach dem Verzweigen mit dem Hauptzweig synchron bleiben sollten. Denn irgendwann müssen Sie es wieder zum Master zusammenführen. Um beim Zusammenführen nicht zu komplizierten Konflikten zu führen, sollten Sie häufig einen Commit ausführen und häufig zusammenführen.
Gute Praktiken, die zu befolgen sind
Ein erfolgreiches Git-Verzweigungsmodell von Vincent Driessen hat gute Vorschläge. Wenn Ihnen dieses Verzweigungsmodell zusagt, ziehen Sie die Flusserweiterung auf git in Betracht . Andere haben über den Fluss kommentiert .
Tagging-Praktiken
Wie Sie bereits wissen, gibt Git Ihnen Commit-IDs wie 1.0-2-g1ab3183, aber das sind keine Tags! Das Taggen erfolgt mit dem git-Tag, und die Tags, die mit dem git-Tag erstellt werden, sind die Basis für die von git describe erstellten Festschreibungs-IDs. Mit anderen Worten, in Git kennzeichnen Sie keine Zweige. Sie markieren Commits. Es ist richtig zu sagen, dass das Tag nur ein mit Anmerkungen versehener Zeiger auf ein Commit ist.
Schauen wir uns ein praktisches Beispiel an, das es demonstriert hat:
/ - [v1.0]
v
---. ---. --- .--- S ---.--- Ein <- Meister
\
\ -.--- B <- Test
Lassen Sie uns ein 'S' übergeben, indem Sie auf das Tag 'v1.0' zeigen. Diese Festschreibung gilt sowohl für den Zweig 'master' als auch für den Zweig 'test'. Wenn Sie " git describe " über "commit A" (über "master") ausführen, erhalten Sie so etwas wie v1.0-2-g9c116e9
. Wenn Sie "git describe" über "commit A" (auch als "test" -Zweig bezeichnet) ausführen, erhalten Sie so etwas wie v1.0-2-g3f55e41
das bei der Standardkonfiguration für "git describe" der Fall ist. Beachten Sie, dass dieses Ergebnis etwas anders ist. v1.0-2-g9c116e9
bedeutet, dass wir mit der sortierten SHA-1-ID von 9c116e9
, 2 Commits nach dem Tag festgeschrieben sind v1.0
. Es gibt kein Tag v1.0-2
!
Wenn Ihr Tag nur im Zweig 'master' angezeigt werden soll, können Sie nach dem Verzweigungspunkt des Zweigs 'test' ein neues Commit erstellen (z. B. nur Standard- / Fallback-Versionsinformationen in GIT-VERSION-FILE aktualisieren). Wenn Sie Commits für den Zweig 'test' mit zB 'v1.0.3' markieren, wird dies nur in 'test' angezeigt.
Verweise
Ich habe viele, viele nützliche Blogs und Posts gefunden, von denen ich lernen kann. Diejenigen, die professionell illustriert werden, sind jedoch selten. Daher möchte ich einen Beitrag empfehlen - Ein erfolgreiches Git-Verzweigungsmodell von @nvie. Ich habe seine illustration ausgeliehen :)