3

我似乎在一次以某种方式出错的合并后损坏了我的 Git 存储库。我所做的是:

  • git checkout<主分支>
  • git merge<功能分支>
  • 我遇到了很多通过 Git Extension/kdiff 解决的冲突
  • 最后一次冲突解决后,Git Extensions 问我是否想提交。我回答“否”,因为我想在提交之前再检查一下合并结果。
  • 然后,我使用 IntelliJ 中的“更新项目”从中央存储库中提取最新更改,这样我即将发布的内容git push就不会被拒绝。我认为 IntelliJ 中的“更新项目”做了类似于git stash; git pull --rebase; git stash apply.

    “更新项目”命令没有给出警告、错误或合并冲突。

    我猜这一步是我问题的根源——Git 不知何故忘记了正在进行的合并。

  • 然后我提交了合并并将其推送到中央存储库

当我使用 Git Extensions 浏览存储库历史记录时,我现在看到两个问题:

  • Git 似乎没有认识到功能分支已合并到主分支中。

    合并的结果很好,但是 Git Extensions 中分支历史的图形表示显示没有从功能分支到主分支的线。我的合并提交的日志条目就像常规的非合并提交一样从主分支继续。

  • 当我执行“git log -- <在功能分支中更改的文件>”时,它不会显示所有实际更改文件的提交的日志条目。

    对于某些文件,在合并之前在功能分支上完成的更改的日志条目丢失。

    对于其他文件,即使在解决冲突期间修改了文件,我的合并提交的日志条目也会丢失。

    如果我使用“git log --full-history”,我可以看到丢失的日志条目。

谁能解释出了什么问题以及我能做些什么来解决这个问题?我花了几个小时修复合并冲突,如果可能的话,我想保留合并结果而不重做所有事情。

谢谢!

4

0 回答 0