将旧分支合并到develope中时非常奇怪的git行为

将旧分支合并到develope中时非常奇怪的git行为,git,Git,基本上,我正在将一个旧的commit合并到develop分支中,存在冲突,在修复冲突时,我注意到我的工作目录中缺少了几个文件,这些文件是我在最近的公共祖先之后创建的。以下是合并前我的历史记录: 下面是它之后的样子: 虽然,我注意到在git log--graph--decoration--oneline--all输出中没有一条明确的虚线将E连接到Head,但我认为这只是因为我还没有提交合并。。。现在,我认为我没有看到新文件,因为我还没有提交合并,我将检查是否有这种行为 但到目前为止我学到的是:

基本上,我正在将一个旧的commit合并到develop分支中,存在冲突,在修复冲突时,我注意到我的工作目录中缺少了几个文件,这些文件是我在最近的公共祖先之后创建的。以下是合并前我的历史记录:

下面是它之后的样子:

虽然,我注意到在
git log--graph--decoration--oneline--all
输出中没有一条明确的虚线将
E
连接到
Head
,但我认为这只是因为我还没有提交合并。。。现在,我认为我没有看到新文件,因为我还没有提交合并,我将检查是否有这种行为

但到目前为止我学到的是:在合并之后,
B
中显然有代码,这不在
D的
分支中,也就是在
Head
中,但是我在
B
中添加的新文件不在
Head


你知道为什么我的新文件在合并过程中没有显示在工作树中吗?

我找到了解决方案。问题在于
XCode 8.2
如何确定哪些文件存在,哪些文件不存在。仅在
Finder
中的项目目录中存在文件是不够的,为了
XCode
确认文件的存在,必须通过将文件拖放到
XCode
中的项目目录中来为其创建显式引用,或者右键单击
XCode
中项目目录的某个位置并添加新文件

问题是我假设
XCode
中项目目录中的文件准确地反映了磁盘上项目目录中的文件


解决方案只是在
XCode

中重新创建对丢失文件的引用,您在哪里查找丢失的文件?如果它们没有显示在
git status
的输出中,那么这可能是正常的(这取决于您创建它们的提交内容以及当前分支是什么)。但是如果工作树中没有它,那么您就有问题了。@axiac在合并过程中,它们不在工作树中。在中,存在冲突,在修复冲突时,我注意到有几个文件丢失。我尚未提交合并YetCommit不会更改工作树的内容。它只是在存储库历史中注册工作树的当前状态。当您处于合并的中间时,没有新的提交查看。一些观众(比如gitk)伪造了一个<代码>git日志没有。同时,
git diff
的行为也不同,显示了组合的diff,我总是觉得有点烦人。可能是文件存在于公共祖先中,但在D中被删除了吗?