我想知道如何簽署(-s
)以前在git中提交的提交?Git簽署以前的提交?
回答
要簽收之前的承諾,使用修改選項:
git的承諾--amend --signoff
考慮簽名修改提交消息,使用git filter-branch
來實現。
git filter-branch --msg-filter \
"cat - && echo && echo 'Signed-off-by: Dan McGee <[email protected]>'" \
HEAD
(例如,從 「git filter-branch
magic」)
或者,下面Curt J. Sampson的suggestion,使用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
警告:這將改變現有的提交的SHA1,您可能不得不強制推送結果,如果您的提交已被其他人共享,那麼結果可能會有問題。
試試這個重做舊提交了-S
:
git filter-branch -f --commit-filter 'git commit-tree -S "[email protected]"' HEAD
之後,你必須git push -f
。但要小心,提交ID將改變,其他人將失去同步。
這將簽署所有提交,對吧?如何僅簽出最後一次X提交? –
@ÁkosVandra如果你仍然在尋找答案:'git filter-branch -f --commit-filter'git commit-tree -S「$ @」'HEAD〜X..HEAD'',其中X是最後一次X提交的數量。例如對於最後2個提交:''git filter-branch -f --commit-filter'git commit-tree -S「$ @」'HEAD〜2..HEAD'' –
對我來說,只是對signof進行修改,並沒有真正驗證我在github上的提交。
是對我工作的解決方案是回去,然後簽訂-S
git commit --amend -S
而且每次提交,如果你檢查你的承諾實際上是簽名,電子郵件/名稱根本就沒有追加,使用此命令
git show HEAD --show-signature
額外提示:如果您已經修改你的提交,你可能希望在他們自己的真實姓名(請參閱使用git log
)。您可能正在使用您的github句柄名稱,這是不需要的。只有正確的電子郵件是必要的,並且在用戶名字段中,您應該使用您的全名,並且github會使用您的github處理名稱正確跟蹤它。因此,要糾正你的用戶名和簽署最後提交使用:通過
git config --global user.name "FULL NAME"
git commit --amend --author="FULL NAME <email>" -S
,還可以設置全名用戶名在將來我有一個類似的問題。在此,感謝來自的Gentoo Linux羅賓·約翰遜是一招簽名添加到我以前所有的unpushed提交:
$ 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. Intellij IDEA簽署GIT提交GPG
- 2. Git重複以前提交的部分
- 3. Git重置爲以前的提交
- 4. 重置爲以前的提交.git
- 5. Git - 將未提交的更改推送到以前的提交
- 6. Git簽署一個標籤/提交其他gpg
- 7. Git - 從以前的提交和拆分提交歷史分支
- 8. 如何編輯以前的提交,並在不刪除git之前的提交?
- 9. Git - 回到以前的提交,現在想寫在前面的提交
- 10. 你怎麼看到目前在Capistrano部署git的提交?
- 11. 以下git提交提示?
- 12. 應用從以前的一個git補丁提交到以後提交
- 13. GIT:有當前提交散列和最新的標籤在文件上提交
- 14. 防止git在簽署提交期間詢問GnuPG密碼
- 15. GPG簽署所有git提交而不存儲
- 16. Git簽出與標籤提交空格
- 17. git簽出特定提交前的版本
- 18. Git說我提前2次提交
- 19. Git:提前一次提交頭文件
- 20. 恢復以前的提交後,git是否提交相同的散列?
- 21. 如何爲多個開發者簽署git提交部署OpenPGP密鑰?
- 22. rebranch以前提交
- 23. Git可以在提交或推送和部署之前在一個文件上進行多個提交嗎?
- 24. 如何使用標籤以來的提交數量來顯示git提交
- 25. Git簽出到最近的提交
- 26. 刪除之前在Git中的提交
- 27. Git - 回滾到之前的提交
- 28. OpenPGP簽名的git提交如何影響提交大小?
- 29. Git同步說,提前1提交,並落後4提交
- 30. Git的用法:「插入」提交之前提交
檢查http://schacon.github.com/git/git-commit.html –
可能重複http://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for –
我不知道這是否沒有諷刺意味。通過簽署您或多或少地說「我聲稱以前的承諾是安全的」。但是,如果你已經克隆了他們等,而且你沒有對這些進行真正的檢查,那麼你就說明了你不能檢查的東西。想象一下黑客以某種方式操縱提交。然而,簽署確實可以防止在後期階段篡改提交。但是,也許你應該把這個添加到消息中? –