Ich frage mich, wie ich (-s
) von früheren Commits, die ich in der Vergangenheit in git gemacht habe, unterschreiben?Git vorherige Commits abmelden?
Antwort
der vorherigen begehen Um SIGNOFF verwenden ändern Option:
git commit --amend --signoff
Berücksichtigt Sign-Offs die Commit-Nachricht zu ändern, verwendet git filter-branch
, um das zu erreichen.
git filter-branch --msg-filter \
"cat - && echo && echo 'Signed-off-by: Dan McGee <[email protected]>'" \
HEAD
(zB von "git filter-branch
magic")
Oder folgenden Curt J. Sampson ‚s suggestion, mit git interpret-trailers
:
git config trailer.sign.key "Signed-off-by"
git filter-branch --msg-filter \
"cat - && echo && git interpret-trailers --trailer 'sign: 'Signed-off-by: Dan McGee <[email protected]>'" \
HEAD
Vorbehalt: dies die SHA1 Ihrer bestehenden Commits ändern, und Sie müssen möglicherweise das Ergebnis erzwingen, was problematisch sein kann, wenn Ihre Commits bereits von anderen geteilt werden.
Verwenden Sie 'git interpret-trailers' mit' git filter-branch --msg-filter', anstatt die 'Signed-off-by:' oder andere Trailer manuell hinzuzufügen. Dadurch vermeiden Sie beispielsweise die Vervielfältigung von Trailern. –
@ CurtJ.Sampson Ja! Vielen Dank. Ich habe das gestern buchstäblich dokumentiert: https://stackoverflow.com/a/41361273/6309. – VonC
@ CurtJ.Sampson Ich habe die Antwort entsprechend geändert. – VonC
versuchen diese alten Commits mit einem -S
zu wiederholen:
git filter-branch -f --commit-filter 'git commit-tree -S "[email protected]"' HEAD
Danach müssen Sie git push -f
. Aber Vorsicht, die Commit-IDs ändern sich und andere Leute werden nicht mehr synchron sein.
Dies wird alle commits abmelden, oder? Wie kann ich nur die letzten X-Commits abschreiben? –
@ ÁkosVandra, wenn Sie immer noch nach einer Antwort suchen: '' git filter-branch -f --commit-filter 'git commit-tree -S "$ @"' HEAD ~ X..HEAD'', wo X steht die Anzahl der letzten X-Commits. z.B. für die letzten 2 commits: '' git filter-branch -f --commit-filter 'git-commit-tree -S "$ @"' HEAD ~ 2..HEAD'' –
Für mich nur signof, ich habe meine commits auf github nicht verifiziert.
Die Lösung, die für mich gearbeitet wird, geht zurück, und dann jedes unterzeichnen begehen mit -S
git commit --amend -S
Auch wenn Sie überprüfen, ob Ihr begehen tatsächlich unterzeichnet, und Ihre E-Mail/Name wird einfach nicht angehängt, mit diesem Befehl
git show HEAD --show-signature
extra-Tipp: Wenn Sie bereits Ihre Commits zur Änderung, die Sie in ihnen Ihren wirklichen Namen möchten (siehe Verwendung git log
). Möglicherweise verwenden Sie den Namen Ihres GitHub-Handles, der nicht benötigt wird. Es wird nur eine korrekte E-Mail benötigt und im Feld Benutzername sollten Sie Ihren vollständigen Namen verwenden und github wird diesen mit Ihrem Github-Handle-Namen korrekt verfolgen. So Ihren Benutzernamen zu korrigieren und Zeichen letzten Verwendung begehen:
git commit --amend --author="FULL NAME <email>" -S
und auch eingestellt vollständigen Namen für Benutzernamen in Zukunft durch
git config --global user.name "FULL NAME"
ich ein ähnliches Problem hatte. Hier dank Robin Johnson von Gentoo Linux ist ein Trick, um die Signatur zu allen meinen vorherigen nicht gedrückten Commits hinzuzufügen:
$ git pull && git rebase --gpg-sign --force-rebase origin/master && git push --signed
Already up-to-date.
Current branch master is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Applying: sci-biology/KING: new package
Applying: dev-lang/yaggo: version bump, fix install procedure
Applying: sci-libs/htslib: version bump
Applying: sci-biology/bcftools: version bump
Applying: sci-biology/samtools: version bump
Applying: sci-biology/libBigWig: new release with io.h renamed to bigWigIO.h
Applying: sci-biology/MaSuRCA: add more URLs to HOMEPAGE
Applying: sci-biology/SPAdes: update comments on bundled dev-libs/boost
Applying: sci-biology/khmer: added a comment how to proceed with src_compile()
Applying: sci-biology/picard: version bump
Applying: sci-biology/ruffus: pint EGIT_REPO_URI to the archive URL of code.google.com
Applying: sci-biology/vcftools: the 0.1.15_pre release was just renamed to 0.1.15 by upstream
Applying: sci-biology/nanopolish: new package
Applying: sci-biology/libBigWig: version bump
Counting objects: 75, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (75/75), done.
Writing objects: 100% (75/75), 14.51 KiB | 0 bytes/s, done.
Total 75 (delta 55), reused 0 (delta 0)
remote: To github.com:gentoo/sci.git
remote: 29c5e3f5d..b37457700 master -> master
To git+ssh://git.gentoo.org/proj/sci.git
29c5e3f5d..b37457700 master -> master
$
- 1. git: größte Commits finden
- 2. Git wieder mehrere commits
- 3. Wiederherstellen eines vorherigen Git-Commits?
- 4. Commits von Git-Hooks ausschließen?
- 5. Entfernen leere Commits in Git
- 6. Müll sammeln commits in git
- 7. Git bisect mit fusionierte Commits
- 8. Git-Log ohne Autoren-Commits
- 9. git filter-branch Commits Nachricht
- 10. git kann nicht quetschen commits
- 11. bekommen commits 'tag in git
- 12. Export letzten Monaten git commits
- 13. git squash mehrere merge commits
- 14. Vorherige GIT-Commits in einem Unterverzeichnis in einen neuen Zweig verschieben
- 15. Git, überschreiben vorherige Commit-Benutzernamen und E-Mails
- 16. Eclipse Git - Vergleichen Sie verschiedene Branchen vorherige Version
- 17. Git-Commits finden, die mehrere spezifische Commits enthalten
- 18. Git: Commits In der Geschichte, die waren 2 Commits früher
- 19. Git Benutzer über die Befehlszeile abmelden
- 20. Zurücksetzen einer einzelnen Datei auf eine vorherige Version in git
- 21. Kombiniere lokale Git-Commits in einen Commit für git-svn
- 22. GPG signieren alle git commits ohne stash
- 23. git create patch von unpushed commits
- 24. Ändern des Git-Kommentars eines Push-Commits
- 25. git, squashing commits on the fly
- 26. git create Branch mit bestehenden lokalen commits
- 27. Git - Können wir gelöschte Commits wiederherstellen?
- 28. Git - Vergleichen Commits auf verschiedenen Zweigen
- 29. Squash git Commits von Zweig Zweig
- 30. git finde doppelte commits (von patch-id)
Check http://schacon.github.com/git/git-commit.html –
möglich Duplikat http://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for –
Ich frage mich, ob es nicht ironisch unsicher ist, dies zu tun. Indem du dich unterzeichnest, sagst du mehr oder weniger "Ich behaupte, dass die vorherigen Commits sicher sind".Aber wenn Sie sie geklont haben usw. und Sie diese nicht wirklich überprüfen, geben Sie etwas an, das Sie nicht überprüfen können. Stellen Sie sich einen Hacker vor, der irgendwie einen Commit manipuliert. Das Unterschreiben verhindert jedoch in der Tat, dass jemand in einer späteren Phase das Commit manipuliert. Aber vielleicht sollten Sie das zur Nachricht hinzufügen? –