在进行git合并时,我删除了新添加的文件,为什么?

时间:2016-06-02 14:45:10

标签: git merge

我已从分支到功能,在功能中我添加了文件CMakeLists.txt (git add)。在 master feature 之间发生了更多提交和合并。现在我将 master 合并到 feature 中,我发现在合并期间删除了CMakeLists.txt(使用git status)。我的问题是:为什么以及如何发生这种情况?

我尝试使用以下命令检查主分支上CMakeLists.txt的更改: git log master -- CMakeLists.txt 这不返回任何内容,因此我得出结论 master 上不存在CMakeLists。这是正确的命令吗?我怎样才能弄清楚出了什么问题?

2 个答案:

答案 0 :(得分:0)

您必须在合并之前提交更改。您只能合并快照(提交),而不能合并临时区域中的文件。

答案 1 :(得分:0)

我已经弄清楚发生了什么。其他人分支我的功能分支来处理另一个功能,例如 feature2 。完成此新功能后,功能中添加的文件将被删除,并与 master 合并。因此,“删除”被合并。当我尝试将 master 合并到我的分支中时,我也在合并这些删除。因此我的文件被删除了。

我用以下方式解决了这个问题:

  1. 我查看了功能并与 master 合并。
  2. 然后我使用:

    再次检查了CMakeLists.txt的日志

    git log --all -- CMakeLists.txt

  3. 接下来我注意到sha sha34的最后一次提交有关于删除CMakeLists.txt的评论。

  4. 我使用以下方法检查了此提交中发生的更改:

    git diff 1234~1 1234 --summary

    向我显示CMakeLists.txt被删除。

  5. 我与提交1234的作者进行了交谈,并弄清楚了已完成的工作。
  6. 希望这有助于将来。

相关问题