Was ist der Unterschied zwischen den Befehlen "Ändern" und "Squash"? Ich habe beides versucht und festgestellt, dass beide dasselbe tun, um richtig zu verwalten.Git - Unterschied zwischen den Befehlen "Ändern" und "Squash"
Antwort
In Git, sind Commits selten tatsächlich zerstört, sie werden nur Waisen, oder abgelöst, was bedeutet, dass sie auf oder durch einen Verweis wie ein Zweig oder ein Tag erreichbar nicht spitz sind.
"ändern" und "quetschen" sind ähnliche Konzepte obwohl.
In der Regel ist zur Änderung eine Einzel-Commit-Operation, in der Sie Arbeit, die Sie mit Ihrem HEAD-Commit inszeniert haben, kombinieren möchten. Dies kann sehr praktisch sein, wenn Sie gerade ein Commit erstellt haben und feststellen, dass Sie etwas Inhalt hinzufügen müssen. Rufen Sie einfach Ihren Commit-Befehl auf und verwenden Sie die Option --amend
.
Squashing ist der abstraktere Begriff. Ich würde sagen, dass eine Änderung eine Art von Squash ist. Wann immer Sie Commits kombinieren, könnten Sie sagen, dass Sie sie quetschen. Wenn Sie für eine kurze Zeit an einem Zweig gearbeitet haben und 5 Commits gemacht haben, die zusammengenommen 1 Commit sein sollten, können Sie interaktiv rebasen, um sie zu zerquetschen.
Es gibt mehrere Möglichkeiten in Git, um zu verbessern/Squash, aber sie alle zentrieren sich um das Konzept der Organisation Ihrer Commit-Geschichte (was bedeutet, die Geschichte einer Branche neu zu schreiben) in diesem Geist des leichter zu grok.
amend
ändert nur das letzte Commit.
squash
ist wie das Zusammenführen mehrerer Commits zu einem Commit.
Für nur ein Commit können ihre Effekte gleich aussehen.
- 1. Unterschied zwischen git-log und git-whatchanged?
- 2. git verschmelzen mit --no-ff und --squash
- 3. Was ist der Unterschied zwischen "Squash" und "Fixup" in der Git/Git-Erweiterung?
- 4. Unterschied zwischen git reset --hard und git clean
- 5. Unterschied zwischen Schnitt in Git
- 6. Unterschied zwischen Git und libgit2
- 7. In Git, was ist der Unterschied zwischen Merge - Squash und Rebase?
- 8. Unterschied zwischen Git Subtree und Git Filter-Banch
- 9. Unterschied zwischen Git push Herkunft Master und Git push
- 10. Squash git Geschichte
- 11. Probleme mit Git - Rebase/Squash
- 12. git Squash und bewahren letzten commit Zeitstempel
- 13. Git - Squash ganzer Zweig - eine Linie Squash Befehl
- 14. Unterschied zwischen diesen beiden Befehlen (w & w/out "") und warum?
- 15. Machen Sie eine git Squash Merge und git merge wieder
- 16. git squash mehrere merge commits
- 17. Was ist der Unterschied zwischen Git Push und Git Pull?
- 18. Unterschied zwischen Git Ignorieren und Untrack
- 19. Was ist der Unterschied zwischen Linux- und Unix-Befehlen?
- 20. Unterschied zwischen git reset --hard und git checkout
- 21. git: Squash/Fixup früher begehen
- 22. Differenz zwischen den Befehlen AVX vxorpd und vpxor
- 23. Unterschied zwischen Git ziehen und Git Pull - Rebase
- 24. Was ist der Unterschied zwischen Git am und Git anwenden?
- 25. Unterschied zwischen Git-Filter-Zweig und Git-Unterbaum?
- 26. Unterschied zwischen "**/* /" und "** /"?
- 27. Irgendein Unterschied zwischen Git add. und Git hinzufügen --all?
- 28. Unterschied zwischen git add. und git commit -am "message"
- 29. Was ist der Unterschied zwischen git reset und git revert?
- 30. Squash erste N verpflichtet git Geschichte/den Rest halten wie
korrigiert meine Frage, wie Sie vorgeschlagen. –