我在项目的“dev”分支中有一些未签名的提交。
但是项目发生了变化,现在我必须在与 master 合并之前签署每个提交。
如果我在“dev”分支中有未签名的提交,如何与 master 合并?
我在项目的“dev”分支中有一些未签名的提交。
但是项目发生了变化,现在我必须在与 master 合并之前签署每个提交。
如果我在“dev”分支中有未签名的提交,如何与 master 合并?
我在项目的“dev”分支中有一些未签名的提交。
你是在自问自答:
…我必须签署每个提交…</p>
您必须签署分支中的每个提交dev
。请注意,在提交后签署提交会更改整个分支,因此最后您必须强制推送分支dev
。并在开始前做好备份。
从dev
分支开始:
git checkout dev
如果其中只有很少的提交(从它分支的提交开始master
),那么您可以为要签名的每个提交执行git rebase -i $COMMIT_ID
并运行。git commit -S --amend
如果不止几个,你最好使用filter-branch
:
git filter-branch -f --commit-filter 'git commit-tree -S "$@"' $COMMIT_ID..dev
$COMMIT_ID
dev
是从 中拆分出来的提交的 ID master
。您可以使用git log --all --decorate
或找到它git merge-base --fork-point master
。
签署合并后master
并推送新的dev
:
git checkout master
git merge dev
git push origin master +dev