我已从主分支到功能,在功能中我添加了文件CMakeLists.txt
(git add)。在 master 和 feature 之间发生了更多提交和合并。现在我将 master 合并到 feature 中,我发现在合并期间删除了CMakeLists.txt
(使用git status
)。我的问题是:为什么以及如何发生这种情况?
我尝试使用以下命令检查主分支上CMakeLists.txt
的更改:
git log master -- CMakeLists.txt
这不返回任何内容,因此我得出结论 master 上不存在CMakeLists
。这是正确的命令吗?我怎样才能弄清楚出了什么问题?
答案 0 :(得分:0)
您必须在合并之前提交更改。您只能合并快照(提交),而不能合并临时区域中的文件。
答案 1 :(得分:0)
我已经弄清楚发生了什么。其他人分支我的功能分支来处理另一个功能,例如 feature2 。完成此新功能后,功能中添加的文件将被删除,并与 master 合并。因此,“删除”被合并。当我尝试将 master 合并到我的分支中时,我也在合并这些删除。因此我的文件被删除了。
我用以下方式解决了这个问题:
然后我使用:
再次检查了CMakeLists.txt
的日志
git log --all -- CMakeLists.txt
。
接下来我注意到sha sha34的最后一次提交有关于删除CMakeLists.txt
的评论。
我使用以下方法检查了此提交中发生的更改:
git diff 1234~1 1234 --summary
向我显示CMakeLists.txt
被删除。
希望这有助于将来。