我似乎在一次以某种方式出错的合并后损坏了我的 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”,我可以看到丢失的日志条目。
谁能解释出了什么问题以及我能做些什么来解决这个问题?我花了几个小时修复合并冲突,如果可能的话,我想保留合并结果而不重做所有事情。
谢谢!