2016-07-07 3 views
7

Zum Beispiel gibt es mehrere große Funktionen: User [muss UserControl, UserModel, UserService] und Admin, Post, Comment entwickeln.Was tun Sie, wenn Sie bei der Entwicklung einer Funktion einen Fehler in einer anderen Funktion finden?

Jetzt sind Sie in features/post Zweig, Post-Funktionen zu entwickeln. Aber Sie stoßen auf einige Fehler in User verwandten Funktionen.

Also in Bezug auf Gitflow, was ist der vorgeschlagene Weg zu tun?

  1. hinzufügen TODO oder Fix me auf Funktionen Benutzer bezogen, und befestigen Sie die Entwicklung der Post, den Fehler nach dem Beenden und fusionierte, den Code zu beherrschen?

  2. bunkern die unvollendete Post bezogenen Code, erstellen Sie einen fix Zweig, den Fehler beheben, fusionieren zu features/post, bunkern die unvollendete Post bezogenen Code Pop, dann weitergehen?

Antwort

3

Sie können frei festlegen, was Sie wollen, unabhängig davon, ob es sich um das "Thema" handelt, an dem Sie gerade arbeiten.

Verwenden Sie dann git commit --patch, um nur die Änderungen hinzuzufügen, die dem Thema entsprechen. (Es lohnt sich, alle Einzelheiten dieses Arbeitsablaufs zu lernen, einschließlich der Aufteilung von Hunks in kleinere Änderungen und des Bearbeitens von Hunks, die nicht geteilt werden können, jedoch eine Mischung aus erwünschten und unerwünschten Änderungen enthalten).

Wenn die Themen-Commits alle mit einer oder mehreren git commit --patch-Operationen ausgeführt werden, bleiben nur die Off-Topic-Änderungen in der Arbeitskopie. An diesem Punkt können Sie git checkout zu einem anderen Zweig, um diese gegebenenfalls zu begehen, mit git stash save und git stash pop, um alle Beschwerden, die Sie nicht auf Änderungen haben.

Wenn alles in der gleichen Branche ist, dann spielt vielleicht die Reihenfolge keine Rolle. Sie können nur git commit --patch den Bugfix, den Sie entdeckt haben, dann weiter mit dem Thema. Wenn der Fix mitten in den laufenden Themenbehebungen landet, können Sie immer git rebase -i: interferential rebase es, so dass das Thema commits zusammen sind, und der zufällige Bugfix ist davor oder danach.

In meiner Software-Organisation müsste ich ein Ticket erstellen und eine Bug-Nummer für diesen zufälligen Bugfix erhalten und es zur Überprüfung in Gerrit einreichen. Wenn es offensichtlich ist, dass es so aussieht, als würde es schnell und einfach genehmigt werden, würde ich das zuerst tun, bevor ich an den "gewichtigen" Änderungen arbeite, an denen ich arbeite.

0

ich nicht git-flow Insbesondere folgen, aber hier ist es, was ich zu tun versuchen:

  • Stash oder git-worktree verwenden.
  • Beheben Sie den Fehler in der relevanten Upstream-Zweigstelle.
  • Die Fixierung in den Arbeitszweig zusammenführen (normalerweise rebase ich später).

Alternativ können Sie zunächst fixieren im aktuellen Zweig als ein diskreten begehen, dann git cherry-pick es in den Upstream-Zweig und git rebase aus dem aktuellen Zweig fallen zu lassen.

1

Ich habe nicht gefunden GitFlow definiert das.

Für mich, basierend auf dem kritischen von BUG, ​​werde ich entscheiden, es sofort zu beheben oder TODO hinzufügen, um es später zu beheben.

Ich repariere es nicht im selben Zweig mit der aktuellen Entwicklungsfunktion, weil es meine Teamkollegen verwirrt, wenn sie meinen Quellcode überprüfen.

0

Dies ist ein bisschen eine meinungsbasierte Frage - Git-Flow erfordert nicht, dass Sie dies in einer bestimmten Weise lösen.

Ich werde in der Regel zurück in den Zweig zu entwickeln, erstellen Sie einen neuen Feature-Zweig, beheben Sie den Fehler dort, dann sobald das in Entwicklung zusammengeführt wird, werde ich die Funktion, auf die ich ursprünglich arbeitete auf neu erstellen, so dass ich jetzt haben der Bug behoben.

Wenn der Fehler dringend ist und entwickeln ist nicht das gleiche wie Master, werde ich einen Hotfix-Zweig verwenden, und erneut meine Zweigstelle auf Entwickeln, sobald der Hotfix in Master zusammengeführt und zu entwickeln.

Verwandte Themen