Sollte ich beim Fixieren eines früheren Commits ein separates Fixup-Commit neu erstellen oder hinzufügen?

11

Ein häufiges Szenario in der Softwareentwicklung ist die Codeüberprüfung des Codes eines anderen. Ein gängiges Tool hierfür ist das Öffnen einer Pull-Anfrage.

Meine Frage ist, wenn Probleme in der Überprüfung gefunden werden, sollten sich die Änderungen ändern

  1. separat festgeschrieben werden (neues Festschreiben)
  2. oder sollte das vorhandene Commit geändert werden (vorausgesetzt, niemand verzweigt von Ihrem früheren Commit ... da das Umschreiben des Verlaufs eines gemeinsam genutzten Zweigs eine schlechte Nachricht ist).

Im ersten Szenario ist es einfach, inkrementelle Änderungen zu verfolgen, obwohl dies dem Commit-Verlauf etwas Rauschen hinzufügt. Die zweite Option hat die umgekehrten Vor- und Nachteile.

loeschg
quelle
14
Sie sagen "Rauschen" zum Commit, aber ich habe gelesen, dass dies eine genaue Geschichte ist . Warum versuchen zu maskieren, was wirklich in der Commit-Geschichte passiert ist? Eine Codeüberprüfung ist eine Codeüberprüfung, die nicht als etwas anderes dargestellt werden muss. Meine Stimme würde an das separate Commit gehen und nicht an die Rebase in diesem Fall.
Thomas Stringer
3
Normalerweise mache ich beides. Veröffentlichen Sie jedes Commit separat. Sobald die Überprüfung abgeschlossen ist, wird die Basis neu erstellt und zusammengeführt. GitHub führt Diskussionen über die Pull-Anforderung, auch nachdem diese Commits entfernt oder ersetzt wurden, sodass durch das erneute Basieren kein wesentlicher Verlaufsverlauf entsteht. Sie bekommen das Beste aus beiden Welten.
Ajedi32
1
Ich habe gemischte Gefühle in Bezug darauf, ob ich etwas begangen habe, von dem ich später festgestellt habe, dass es das System zum Absturz bringt. Diese Commits, die ich bald entdecken möchte, sind diejenigen, die ich gerne aus der Geschichte zurücknehmen würde. Aber sie sind nur Kleinigkeiten, sie kosten nicht so viel. Daher ist es wahrscheinlich die sicherste, kostengünstigste und beständigste Sache (wie in der Doktrin), immer separat zu begehen und das Autowrack für alle im Graben zu lassen jetzt und für immer sehen. .... und Sie können jeden fehlerhaften Zweig mit einer eindeutigen Nachricht markieren, um nicht darauf aufzubauen, also keinen gemeinsamen Zweig.
Robert Bristow-Johnson
Können Sie erklären, was "Rebasing" ist und wann ich es möchte?
Kilian Foth

Antworten:

23

Sie gehen davon aus, dass das Update keine neuen Probleme verursacht und die alten vollständig behebt. Viele Korrekturen sind jedoch eine Überprüfung wert - und das ist wahrscheinlich viel einfacher, wenn die inkrementellen Änderungen separat überprüft werden können.

Doc Brown
quelle