首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git重基合并冲突错误,选择删除而不是创建文件。

git重基合并冲突错误,选择删除而不是创建文件。
EN

Stack Overflow用户
提问于 2022-09-15 07:45:22
回答 1查看 33关注 0票数 0

git rebase origin/main期间,我遇到了合并冲突。文件不存在于本地分支,而存在于主分支中。然后我运行了git mergetool,它问我想做什么:

代码语言:javascript
复制
Merging:
src/CMakeLists.txt

Deleted merge conflict for 'src/CMakeLists.txt':
  {local}: created file
  {remote}: deleted
Use (c)reated or (d)eleted file, or (a)bort? d

我选择了电子文件,这是错误的。在继续重基之后,我发现文件丢失了。

然后,我使用git checkout origin/main src/CMakeLists.txt签出丢失的文件,以便恢复该文件。然而,提交历史现在有一个意外的额外提交,这可能会导致问题,如果可能需要进一步的重定位。我只想撤销我的决定,这样提交历史就像我一开始就选择了正确的答案一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 08:58:47

如果只是将origin/master版本的CMakeLists.txt保存在您的所有历史记录中:

运行git rebase -i origin/master

  • in操作列表,在第一次提交后添加break指令,在git rebase停止时保存和退出

  • ,运行git签出原产地/main -- src/CMakeLists.txt git提交--修改

运行git rebase --continue

  • if您知道在该文件上有冲突,您知道总是可以运行git checkout origin/master -- src/CMakeLists.txt来恢复可能有git rebase停止的版本,因为对于特定的提交没有任何更改,在这种情况下,运行git rebase --skip可以跳过回放提交

另一方面,如果对要保存和恢复的文件进行了修改:

在运行git reflog my/working/branch

  • spot之前,
  • 检查您的reflog:git reflog或分支的状态:git reset --hard <sha>
    • run git rebase origin/master再来一次

git reset --hard上的一般警告:

在干净的工作树上运行它,它是git中为数不多的命令之一,它可以从磁盘中删除一些文件或修改,而不需要将它们存储在git中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73727349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档