Sowohl git am
als auch git apply
können zum Anwenden von Patches verwendet werden. Ich sehe den Unterschied nicht. Ich sehe jetzt einen Unterschied: git am
wird automatisch festgelegt, während git apply
nur die Dateien berührt, aber kein Commit erstellt. Ist das der einzige Unterschied?Was ist der Unterschied zwischen Git am und Git anwenden?
Antwort
Sowohl die Eingangs- und Ausgangs sind unterschiedlich:
git apply
einen Patch nimmt (beispielsweise die Ausgabe vongit diff
) und wendet sie auf das Arbeitsverzeichnis (oder Index, wenn--index
oder--cached
verwendet wird).git am
nimmt ein Postfach von als E-Mail-Nachrichten formatierten Commits (z. B. die Ausgabe vongit format-patch
) und wendet sie auf den aktuellen Zweig an.
git am
uses git apply
behind the scenes, aber macht mehr Arbeit vor und nach (zur Schaffung von Commits) (a Maildir
oder mbox
und Analysieren von E-Mails zu lesen).
Hinweis: 'git apply' scheint auch' git format-patch' zu akzeptieren. –
'git apply' würde auch für die Ausgabe von' git format-patch' funktionieren, aber die Änderungen wären nicht gesetzt und müssten festgeschrieben werden (wodurch ein anderer Commit-Punkt im Index erzeugt wird, auf den sie angewendet werden). Mit "git am" würden Sie die Commit-Informationen (zusammen mit dem Autor usw.) in den Index übernehmen, auf den sie angewendet wird. 'git apply' ist dann zum Patchen Ihres Repos (schlecht),' git am' kann legit feature changes nehmen und es in Ihr Repo aufnehmen (bevorzugter Ansatz). –
Mit git am
Sie den Patch so, wenn Sie git status
verwenden, werden Sie keine lokalen Änderungen sehen.
git apply
ermöglicht es Ihnen, die Änderungen in den Quelldateien zu machen, als ob Sie selbst den Code geschrieben haben, damit git status
und git diff
ausgeben wird, die in der Patch-Änderungen Sie sich beworben haben, dann können Sie beheben/weitere Änderungen hinzu und sende sie zusammen als einen neuen Patch ein.
git apply
ist für gerade diffs Anwendung (beispielsweise von git diff
) während git am
ist für Patches und Sequenzen von Patches von E-Mail, oder entweder mbox- Maildir Format und ist die „entgegengesetzte“ von git format-patch
Anwendung. git am
versucht, Commit-Nachrichten und Autorendetails aus E-Mail-Nachrichten zu extrahieren, weshalb es Commits machen kann.
- 1. Was ist der Unterschied zwischen Git Push und Git Pull?
- 2. Was ist der Unterschied zwischen git reset und git revert?
- 3. Unterschied zwischen git add. und git commit -am "message"
- 4. Was ist der Unterschied zwischen 'git remote update', 'git fetch' und 'git pull'?
- 5. Was ist der Unterschied zwischen Tag und Zweig mit Git?
- 6. Was ist der Unterschied zwischen "Git" im Allgemeinen und Github?
- 7. Was ist der Unterschied zwischen. und * in "git add"?
- 8. Was ist der Unterschied zwischen vimdiff und vimdiff2 in git?
- 9. Was ist der Unterschied zwischen 'git format-patch' und 'git diff'?
- 10. Unterschied zwischen git-log und git-whatchanged?
- 11. Was ist der Unterschied zwischen `git diff topic1 topic2^master` und` git diff topic1..topic2^master`?
- 12. Was ist der Unterschied zwischen "Squash" und "Fixup" in der Git/Git-Erweiterung?
- 13. Was ist der Unterschied zwischen 'git fetch ursprung' und 'git remote update origin'?
- 14. Was ist der Unterschied zwischen Git zurückgesetzt --hard und git reset --merge
- 15. Was ist der Unterschied zwischen `git reset --hard master` und` git reset --hard origin/master`?
- 16. Was ist der Unterschied zwischen Git hinzufügen. und git add -A?
- 17. Was ist der Unterschied zwischen git add * und git add., Falls vorhanden?
- 18. Was ist der Unterschied zwischen `git add.` Und `git add -u`?
- 19. Unterschied zwischen Git und libgit2
- 20. Git-Diff gegen Git-Log? Was ist der Unterschied?
- 21. Was ist der Unterschied zwischen Chakryys Git-Paketen?
- 22. Unterschied zwischen git reset --hard und git clean
- 23. Unterschied zwischen Git push Herkunft Master und Git push
- 24. Unterschied zwischen Git ziehen und Git Pull - Rebase
- 25. Unterschied zwischen Git-Filter-Zweig und Git-Unterbaum?
- 26. Unterschied zwischen Git Ignorieren und Untrack
- 27. Unterschied zwischen git reset --hard und git checkout
- 28. Unterschied zwischen Git Subtree und Git Filter-Banch
- 29. Irgendein Unterschied zwischen Git add. und Git hinzufügen --all?
- 30. Unterschied zwischen Schnitt in Git
'am' könnte man sich als eine Abkürzung von' Apply Mail' vorstellen ... –