Ich bin genau in dieser Situation, aber ich habe mich für einen etwas komplexeren, aber nicht unbedingt komplizierteren Workflow mit Git entschieden.
Das Ziel war zuerst, den Git-Weg zu lernen, also habe ich einiges erforscht. kehrte dann so ziemlich zum beschriebenen Workflow zurück.
Nach einer Weile wurde es schwierig, damit umzugehen, da einige Situationen auftraten, und es gab mir schlechte Gewohnheiten, die schwer zu brechen waren, wenn ich mich einem Team anschloss.
so entschied ich mich für folgendes:
- Lokales Repository zum Arbeiten.
- Hauptzweig als stabiler Stamm für die Anwendung
- Ein Zweig für jedes Feature / Refactor, im Grunde ein Zweig für jede größere Änderung, die vorgenommen wird.
- Gehen Sie zurück zum Stamm, wenn der Zweig stabil ist und alle Tests bestanden wurden.
Ich richte auch ein Git-Hub-Konto ein, mit dem ich den Trunk synchronisiere. Dadurch konnte ich problemlos an verschiedenen Computern arbeiten. Es war notwendig, erlaubte mir aber, Fehler zu finden, die mit der Umgebung zu tun hatten, in der ich mich befand und die auf den anderen Computern nicht verfügbar war. Jetzt mache ich es mir zur Gewohnheit, mindestens einmal ein Projekt auf einem anderen "jungfräulichen" System auszuprobieren. Das erspart mir viel Kopfzerbrechen bei der Bereitstellung beim Kunden.
- Ich tagge jede Version, die es in Github schafft, als freigebbare Version.
- Wenn für den Kunden freigegeben, werde ich von dieser Version abzweigen, um einen zweiten stabilen Trunk für vom Kunden deklarierte Fehlerbehebungen zu erstellen.
Die vielen Zweige schienen zunächst übertrieben, aber es half WIRKLICH viel. Ich konnte eine Idee in einem Zweig anfangen, eine Weile daran arbeiten, und als ich anfing, Kreise zu drehen, gab ich auf und startete einen anderen Zweig, um an etwas anderem zu arbeiten. Später kam mir eine Idee, wo ich zu dem halbgebackenen Zweig zurückkehren und diese Idee erforschen würde. Dies alles hat mich VIEL produktiver gemacht, da ich sehr schnell mit Blitzen und Ideen umgehen und sehen konnte, ob es funktioniert. Die Kosten für das Wechseln von Zweigen mit GIT sind extrem niedrig, wodurch ich mit meiner Codebasis sehr flink bin. Das heißt, ich muss immer noch das Rebase-Konzept beherrschen, um meine Geschichte zu bereinigen, aber da ich ganz alleine bin, bezweifle ich, dass ich es wirklich brauche. Schob es als "schön zu lernen".
Als alle Verzweigungen kompliziert wurden, untersuchte ich die Protokolloption, um einen Änderungsbaum zu zeichnen und zu sehen, welche Verzweigungen wo sind.
Kurz gesagt, Git ist nicht wie SVN, CVS oder (brrr) TFS. Das Verzweigen ist sehr billig und es ist ziemlich schwierig, Fehler zu machen, die die Arbeit zunichte machen. Nur einmal habe ich etwas Arbeit verloren, weil ich meine Commits zu groß gemacht habe (siehe schlechte Gewohnheiten oben). Wenn Sie sich häufig verpflichten, wird git durch kleine Brocken definitiv Ihr bester Verbündeter sein.
Für mich öffnete git meinen Geist für das, worum es bei der Quellcodeverwaltung wirklich geht. Alles andere zuvor war nur der Versuch, es zu bekommen, git ist der erste, der es in meinem Kopf bekam. Das heißt, ich habe kein anderes DVCS ausprobiert, möglicherweise könnte diese Aussage auf die ganze Familie ausgeweitet werden.
Ein letzter Rat, die Kommandozeile ist dein Freund. Um nicht zu sagen, dass grafische Werkzeuge nicht gut sind, ganz im Gegenteil, aber ich habe mich sehr geärgert, als ich auf die Kommandozeile gesunken bin und es selbst ausprobiert habe. Es ist eigentlich sehr gut gemacht, leicht zu folgen mit einem sehr umfassenden Hilfesystem. Mein größtes Problem war es, an die hässliche Konsole in Windows gebunden zu werden, bis ich Alternativen fand.
Jetzt verwende ich beides, die Eclipse-Integration mit Git, um zu sehen, was in Echtzeit vor sich geht, und um einige Vorgänge wie Unterschiede auszuführen, den Verlauf einer Datei zu untersuchen usw. Und die Befehlszeile zum Verzweigen, Zusammenführen, Verschieben, Abrufen und die komplexeren Protokollbäume . Einige grundlegende Skripte und ich war noch nie so produktiv in Bezug auf die Quellcodeverwaltung und ich hatte noch nie so viel Kontrolle über meine Quellcodeverwaltung.
Viel Glück, hoffte das half.