Wie erhalte ich einen “git log”-Patch für einen bestimmten Commit

Lesezeit: 1 Minute

Wenn ich einen Commit-Hash habe, der noch nicht an den Ursprung gepusht wurde, wie kann ich dann einen Patch nur für diesen Commit generieren? Ich möchte verwenden git log -p --no-names kann aber keinen Schalter sehen, um einen bestimmten Commit-Hash zu übergeben. Sollte ich einen anderen Git-Befehl verwenden?

Benutzer-Avatar
manojlds

Für Git-Log-Patch:

git log -p -1 <commit>

Sie sollten verwenden git format-patch aber für Patches:

git format-patch -1 <commit>

http://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html

  • Danke. Was ist der Vorteil von format-patch statt git log -p?

    – Jonathan-Tag

    5. Mai 2011 um 3:03 Uhr

  • @Jonathan: Beide reichen als Diff aus, das von einem Menschen konsumiert werden soll (z. B. zur Überprüfung), aber die Ausgabe von git format-patch kapselt die Autoreninformationen und die Commit-Nachricht (sowie den Diff-Text) in ein Standardformat, sodass sie zuverlässig von anderen Tools (z git send-email um sie als E-Mails zu versenden und git am um einen oder mehrere Patches anzuwenden (z. B. einige, die als empfangene E-Mails gesammelt wurden)).

    – Chris Johnsen

    5. Mai 2011 um 15:34 Uhr


  • Danke @Chris, das ist hilfreich. Es scheint, dass der Ubuntu-Patch Probleme beim Analysieren der Ausgabe von hat git log -p das könnte also die lösung sein

    – Jonathan-Tag

    6. Mai 2011 um 0:34 Uhr

  • @Jonathan: Unterschiede im Git-Stil (dh solche mit a diff --git Header) haben mehrere Erweiterungen, die regelmäßig sind Patch nicht verstehen (das Format ist jedoch sehr ähnlich, daher kann es in vielen Fällen funktionieren). Sie können einfache Diffs anwenden (z. B. von git diff oder git log -p) mit git apply (sogar außerhalb des Arbeitsbaums eines Repositorys) oder wenn Sie vollständige „Patches“ von haben git format-patchkönnen Sie verwenden git am um die dargestellten Commits (neu) zu erstellen.

    – Chris Johnsen

    6. Mai 2011 um 2:52 Uhr


1190620cookie-checkWie erhalte ich einen “git log”-Patch für einen bestimmten Commit

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy