You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动