git 对之前的commit 进行重新签名 Resign
在向開源社區(qū)提交PR的時(shí)候如果之前的提交忘記添加sign (個(gè)人簽名/公司簽名),則社區(qū)的DCO檢查會失敗。
關(guān)于通過DCO檢查能夠確保以下幾件事情生效:
- 你所提交的貢獻(xiàn)是由你自己完成或者 你參與了其中,并且有權(quán)利按照開源協(xié)議提交代碼
- 這個(gè)貢獻(xiàn)是在當(dāng)前項(xiàng)目的基礎(chǔ)上完成的。
- 你能夠理解并遵守開源協(xié)議,你的貢獻(xiàn)將會被完全公開。
這個(gè)檢查對于社區(qū)來說能夠防止后面你想要回退你的commit。
基本的簽名方式就是在你git commit -m的時(shí)候增加一個(gè)git commit -s -m "xxx",這樣你提交的commit 內(nèi)容就包含了你的簽名信息
fix the review codeSigned-off-by: BaronStack <2689496754@qq.com>
很多時(shí)候如果我們沒有配置自己的commit 縮寫的話就會忘記-s選項(xiàng),這個(gè)時(shí)候需要對之前的commit 進(jìn)行resign
大體對應(yīng)兩種情況:
- resign 上一次的commit
- resign 之前的很多次commit
針對第一種情況,很簡單:
git rebase --amend ,直接在上一次的commit內(nèi)容中增加你的簽名信息即可。
第二個(gè)情況可以執(zhí)行下面的內(nèi)容
git rebase --exec 'git commit --amend --no-edit -n -S' -i 46809e5902
大體邏輯就是針對到-i之前的commit為止(包括-i)所有的commit 都會執(zhí)行一次git commit --amend --no-edit -n -S來簽名
會進(jìn)入編輯器,直接保存退出就可以,然后不斷得執(zhí)行git rebase --continue,如果過程中有哪一個(gè)commit rebase失敗的話需要根據(jù)提示解決沖突。如果執(zhí)行過程中又不想rebase了,直接git rebase --abort即可,會將本次rebase觸發(fā)的所有的變更都回滾掉。
執(zhí)行完成之后就能git log看到所有的commit內(nèi)容都帶有你的簽名信息了。
總結(jié)
以上是生活随笔為你收集整理的git 对之前的commit 进行重新签名 Resign的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 穆图最后一关怎么打
- 下一篇: Rocksdb 通过posix_adv