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