Ich habe einige Lesung getan, wie sowohl die git merge und git rebase Operationen arbeiten, und ich denke, ich habe ein sehr grundlegendes Verständnis für die Unterschiede. Ich habe die Diagramme gesehen :-) Trotzdem bin ich mir immer noch nicht sicher, was der beste der beiden für meinen aktuellen Workflow sein könnte.Git - Merge vs Rebase für meinen Workflow
Meine Arbeit mit notgedrungen wie es SCM-System ist, aber ich bin mit git lokal Spur von lokalen Änderungen zu halten, tun Refactoring, und ein paar andere coole Sachen, die git bringen kann, um das zu bringen, Tabelle. Ich weiß, dass es bereits ein Werkzeug gibt, um der Einrichtung zu helfen, mit git und forforce zu arbeiten (ex p4-git), aber ich will/brauche diesen Overhead nicht unbedingt, also versuche ich, die Dinge so einfach wie möglich zu halten. Hier ist eine kurze Beschreibung meiner aktuellen Workflow für lokale git Filialen zu schaffen und schließlich die Integration zurück in unser notgedrungen Depot:
Ich habe einen Master git Zweig, die macht einen nächtlichen p4 sync zu unserer Code-Basis . Nach der Zwangs-Synchronisierung übertrage ich alle Änderungen an den Master-Zweig. In der Tat ist mein Master Git-Zweig im Wesentlichen eine Momentaufnahme des neuesten Codes, der zu unserer Hauptlinie perforce verpflichtet wird.
Für lokale Änderungen arbeite ich an, ich habe eine git branch immer zuerst erstellen und Kasse dieser Zweig, während auf der Veränderung arbeiten.
Ab und zu möchte ich meinen Zweig auf den neuesten Stand der Master aktualisieren. Bis jetzt habe ich gerade einen git merge master Befehl ausgegeben, um das zu tun, und es hat gut funktioniert.
Wenn ich bereit bin zu dem tatsächlichen notgedrungen Depot zu begehen, fusionieren ich meine Zweig zurück in mein Master Zweig, durch den Master und git merge BRANCHEN und senden regelmäßig notgedrungen mit Ausgabe Check-out
Befehle
meinen Workflow gegeben, sollte ich wirklich Master Befehl verwenden für Schritt 3 anstelle eines git merge Master ein git rebase? Von meinem Verständnis der Rebase Befehl wäre dies nur notwendig, wenn sagen unsere perforce Mainline (Remote-Depot) wurde verzweigt, und ich wollte einen neuen Master basierend auf dieser Branche erstellen (sagen, ich nenne es Master- newbranch) und übernehme meine Änderungen in dieser neuen Filiale. Ich müsste Rebase von diesem Zweig zuerst?
Im Allgemeinen macht mein aktueller Workflow Sinn, oder habe ich schon einige schlechte Angewohnheiten aufgegriffen?
Sehr interessiert zu sehen, wie diese Frage geht - kann nicht auf Ihre eigentliche Frage kommen, aber wäre es nicht ratsam, eine P4-Synchronisierung zu meistern, bevor Sie versuchen, Ihre Niederlassung in Master zu fusionieren? – cristobalito
Etwas, das in den Sinn kommt, ist [dieser Beitrag] (http://gitster.livejournal.com/42247.html) von Junio C. Hamano (der Betreuer von git). Es ist für Pure-Git-Benutzer gedacht, nicht für Situationen, in denen Sie sich befinden, aber es kann trotzdem einen Einblick geben. – MatrixFrog
MatrixFrog - sehr interessanter Artikel, danke für den Link! Nachdem ich es gelesen habe, stimme ich generell mit dem überein, was Junio sagt, ich sollte nicht wirklich meinen Zweig mit den neuesten Änderungen vom Meister auffrischen. Wenn die Funktion bereit ist, kann ich sie vor dem Senden wieder in den Master einfügen. Das einzige Problem mit diesem ist, dass ich meine "Daten" nicht unter git Kontrolle habe (20GB + von zu überwachenden binären Daten), und gelegentlich ändern sich Daten, die den Code brechen (schlechte Kodierung, ich weiß!), Die mich zwingt, zu aktualisieren mein Zweig vom Meister. –