Als git Best Practice sollte man häufig committen, aber um den Code zu überprüfen, den Sie benötigen, um einen Patch zu überprüfen, der aus mehreren Commits gleichzeitig besteht. Gibt es eine Möglichkeit, mehrere Commits zu überprüfen und entweder zusammenzufassen oder auf einmal abzulehnen?Gerrit: Kombinieren Sie mehrere Commits zu einer "Änderung"
Antwort
Nein, Gerrit unterstützt Batch-Commits derzeit nicht in einer Überprüfung. Es gibt jedoch noch ein paar andere Möglichkeiten.
Bei $ DAYJOB verwendet mein Team Feature-Zweige für größere Änderungen. Die kleineren Commits werden einzeln auf den Feature-Zweig überprüft/zusammengeführt, aber der Feature-Zweig wird nur zusammengeführt, sobald alles in einem guten Platz ist und alle Entwickler glücklich sind.
Gerrit unterstützt auch Themenverzweigungen - eine bequeme Möglichkeit zum Gruppieren verwandter Zusagen. Sie werden kurz in der documentation diskutiert. Diese Commits müssen noch einzeln überprüft/zusammengeführt werden, sie können jedoch schnell in der Web-Benutzeroberfläche gruppiert werden.
Eine Sache, die Sie tun können, ein Squash Merge zu einem temporären Zweig und dann diese Änderung für die Überprüfung buchen.
git checkout -b feature
git commit -m "start feature"
...
git commit -m "finish feature"
git checkout -b feature-review master
git merge --squash feature
git commit
Jetzt ist Ihre feature-review
Zweig die gleiche diff relativ zu master
als feature
enthielt, aber mit nur einem einzigen zu begehen.
Wenn Sie bereits gebucht Überprüfung Anfragen aktualisieren müssen, dann können Sie Commits nutzen ändern:
git commit --amend -C HEAD
und dann für konsequente Überprüfung drücken.
Ich glaube, dass öffentliche commits atomar sein sollten und den kompletten Funktionsumfang enthalten, den Sie beitragen möchten. Normalerweise möchten Sie nicht alle Ihre Zwischen-Commits teilen. Quetschungen vor der Überprüfung sind also eine gute Idee.
Eine Schule des Denkens sagt, es ist am besten, disruptive Änderungen als eine Folge von winzigen atomaren Commits zu machen, von denen jeder drückbar ist, um zu prod. Die Beibehaltung dieser kleinen Commits macht es einfacher zu sehen, was Sie getan haben und warum, leichter zu tun, macht Bisektionen nützlicher und überprüft einfacher und schneller (zB wenn eine Datendatei sortiert wurde und eine Zeile hinzugefügt wurde, werden diese beiden Commits mit zwei) winzige Commit-Nachrichten machen deutlich, was passiert ist und warum. Squashing bedeutet, dass der große Unterschied von der Sorte die Einfügung verschleiert.) Diese Idee ist an den besten Orten populär, an denen ich gearbeitet habe. –
- 1. Wie SVN commits kombinieren?
- 2. Mehrere jenkins/gerrit Projekte
- 3. Kombinieren Sie mehrere Fehlerzeichenfolgen
- 4. Kombinieren Sie mehrere Zeilen in einer Abfrage
- 5. Git ziehen Sie eine Änderung eines Gerrit-Projekts mit gitpython
- 6. Kombinieren Sie mehrere Zellen zu einer in Excel mit Makro?
- 7. Docker: Kombinieren Sie mehrere Bilder
- 8. Git-Commits finden, die mehrere spezifische Commits enthalten
- 9. Kombinieren Sie mehrere Update-Anweisungen
- 10. Kann Commits nicht mit TortoiseGit kombinieren
- 11. Git wieder mehrere commits
- 12. Änderung eines Git-Commits bereits gedrückt
- 13. Wie Kirsch-Pick zu einem bestimmten Zweig auf Gerrit blockieren
- 14. Mehrere commits cherry-picking
- 15. Änderung eines Git Commits zu einem geteilten Repo
- 16. Kombinieren Sie mehrere .Woff-Dateien in einem
- 17. Kombinieren Sie mehrere SKScenes in Sprite Kit
- 18. Kombinieren Sie mehrere Tabellen in eine Tabelle
- 19. So kombinieren Sie mehrere Return-Funktionen (JavaScript)
- 20. Kombinieren Sie mehrere Bitmaps in (TrueType) Schriftart
- 21. Kombinieren Sie mehrere Excel-Arbeitsmappen in einer einzigen Arbeitsmappe
- 22. Kombinieren Sie mehrere Bilder horizontal mit Python
- 23. Kombinieren Sie mehrere Zeilen von MySQL-Array
- 24. Wie kombinieren Sie mehrere greenDAO Tx-Operationen in einer Transaktion?
- 25. Kombinieren Sie mehrere vorhandene Klassen in einer einzigen Klasse
- 26. Excel, kombinieren Sie mehrere Spalten in einer Zeile
- 27. Import-Repository von Git gerrit
- 28. Gerrit doppelte Anfrage abgelehnt
- 29. So lösen Sie falsche Abhängigkeiten in Gerrit
- 30. SQL Query - Mehrere Zeilen zu einer Zeile kombinieren
Vielen Dank für Ihre Antwort. Aber wie drücken Sie dann nach Code-Überprüfungen, die Code-Änderungen beinhalten können, zu einem Master? – Nonos
Sie können weiter an dem gewünschten Zweig (Feature-Feature oder Feature-Review) arbeiten und ihn nach Abschluss des Vorgangs verschieben. Sie können sogar den Prozess des Squash-Mergens für Ihren letzten Commit wiederholen, je nachdem, wie viel Sie sich um Geschichte kümmern und die Commits auflösen. –
'git merge --squash'wird den Verlauf umschreiben und erlaubt Ihnen nicht,' git bisect' auf dem Feature zu verwenden – summerbulb