Git自动合并删除了一些文件

时间:2016-12-08 12:00:14

标签: git merge

我有一个存储库历史记录,如此图像(取自gitk): Git History

现在,发生了一件奇怪的事情:

提交(a)和(b)有一个共同的祖先(当前标记的行)。

在commit(a)" Commit for flexible preamble"中,一些文件被添加到存储库中。在查看此特定git-commit的源代码树时,可以在repo中找到这些文件。

在commit(b)中,即合并提交,突然从(a)中的文件从存储库中删除。

在拉动操作之后,TortoiseGit会自动完成合并。

不幸的是,我无法弄清楚这里发生了什么。用户做错了什么,以便删除文件?或者在这个星座中删除文件是否正常?

第一次合并后文件仍在那里(2016-12-01 19:59:52的蓝线和灰线)。

1 个答案:

答案 0 :(得分:1)

提交b中的一个父项删除了这些文件,或者该父文件中没有该文件。 Git有两个版本的现实。源于提交a的一个版本是添加了一些新文件。另一个版本说这些文件不存在。合并后只能有一个版本。至于为什么Git选择文件不在那里的版本,如果合并中的主分支(即合并另一个分支的那个)不包含这些文件,那么Git可能已经给出了它的版本的东西偏好。

在任何情况下,您都可以通过以下方式再次添加文件:

git checkout <SHA-1> -- filename