签署旧Git提交遇未跟踪文件阻碍,分支复制合并失败求助
解决方案
一、不被未跟踪文件干扰,签署旧提交
你不需要编辑旧提交的内容,只需先处理掉未跟踪的.idea文件,再执行变基签署命令即可:
- 临时暂存未跟踪文件:执行以下命令把
.idea文件夹临时存起来,避免干扰变基操作:git stash push -m "temp stash .idea files" -- .idea - 执行签署变基:继续使用你原本的命令,
--no-edit参数已确保不会修改旧提交的内容,仅添加签名:git rebase --exec 'git commit --amend --no-edit -n -S' -i --root - 恢复暂存文件:变基完成后,将
.idea文件夹恢复到工作区:git stash pop
若变基过程中出现冲突,按常规变基冲突解决流程处理即可,解决后执行git rebase --continue。
二、创建不含未签署历史的新分支
如果不想重写旧分支的历史,可以创建一个仅保留当前最新代码、且初始提交已签署的新分支:
- 切换到testing分支:
git checkout testing - 创建孤儿分支:该分支无任何历史提交,仅包含当前工作区内容:
git checkout --orphan signed-testing - 暂存所有文件:
git add -A - 签署并提交初始版本:
git commit -S -m "Initial signed commit, based on testing branch latest state" - 推送到远程仓库:
git push origin signed-testing
这个新分支仅有一个签署的初始提交,提交PR时不会出现历史无关的问题,你可以用它替代旧的testing分支,或直接提交PR到目标分支。
内容的提问来源于stack exchange,提问作者WorkInProgress
相关产品推荐
相关产品推荐

