Git中恢复已删除文件:Branch A恢复y.js的方法求助
问题原因及解决方法
为什么合并Branch B没成功?
Git在合并分支时会分析历史操作:Branch A中已提交删除y.js的记录,Git默认判定该删除是主动操作,因此合并Branch B时不会自动恢复y.js文件。以下是几种可行的解决办法:
方法1:直接从Branch B提取y.js
无需合并,直接从Branch B中获取y.js文件到当前Branch A:
- 执行命令:
git checkout branchB -- y.js - 若使用Git 2.23及以上版本,也可使用:
git restore --source=branchB y.js - 完成后提交恢复操作:
git add y.js && git commit -m "恢复y.js文件"
方法2:撤销删除y.js的提交
通过git log找到删除y.js的提交哈希值,执行撤销操作:
- 命令:
git revert <删除y.js的提交哈希> - 此命令会生成新提交,将y.js恢复到Branch A,同时保留后续添加z.js、修改x.js的操作。
方法3:合并时强制保留y.js
若坚持通过合并Branch B实现,可手动处理冲突:
- 执行合并命令:
git merge branchB,此时Git会提示y.js的删除冲突 - 提取Branch B中的y.js:
git checkout branchB -- y.js - 标记冲突已解决:
git add y.js - 完成合并提交:
git commit
内容的提问来源于stack exchange,提问作者Nguyễn Tuấn Kiệt
相关产品推荐
相关产品推荐

