Git Cherry-Pick文件冲突后尝试保留HEAD版本,执行git restore失败的问题求助
解决Cherry-Pick冲突后保留当前分支版本的问题
我懂你现在的困扰:在dev分支上cherry-pick Cfeature提交时,src/afile.txt出现了双向修改的冲突,你想保留Cdev里的版本,但直接用git restore src/afile.txt没起作用对吧?
问题出在Git处于合并冲突状态时,单纯的git restore没有明确指定要从哪个版本拉取文件,所以没法正确覆盖冲突内容。试试下面的步骤,就能顺利保留当前分支(Cdev)的版本:
- 首先,明确从当前HEAD(也就是Cdev的提交)取出文件来覆盖冲突版本:
# Git 2.23+ 可用的清晰写法 git restore --source=HEAD src/afile.txt # 兼容旧版本的替代写法 git checkout HEAD -- src/afile.txt - 冲突解决后,标记该文件已处理完成:
git add src/afile.txt - 最后完成cherry-pick操作:
git cherry-pick --continue
如果中途你改变主意,想放弃这次cherry-pick操作,只需要执行:
git cherry-pick --abort
这样就能回到cherry-pick之前的状态啦。
内容的提问来源于stack exchange,提问作者Tiina




