文件从Git存储库中消失了,但没有提交删除它。我注意到它只是因为项目无法编译。 我试图将第二个错误提交一分为二 - 即当此文件消失时第一次提交,但提交历史记录与此文件无关,在diff中没有任何内容可以删除它。 我正在使用Win7机器和MSysGit与Git(GitHub)一起工作。 我不知道它是怎么发生的,我想知道它是什么造成的。欢迎任何有关如何调查的建议!
答案 0 :(得分:2)
很可能该文件从未添加到git存储库中。不幸的是,这是一个相对常见的错误;你创建一个文件但从未将其添加到git。由于git对此一无所知,因此无法帮助您恢复文件。要避免此问题,请经常运行git status并让git告诉您工作目录中存在的不知道的文件。另外,克隆repo并确保构建在克隆中成功。
答案 1 :(得分:1)
我有一次类似的案子。事实证明,由于错误的冲突解决,文件(或者在我的情况下,对该文件的更改)作为合并提交的一部分消失了。假设如下:
如果您现在解决了A中的冲突,但也从合并提交中取消了非冲突的B,则B"消失"并且不在" master"虽然Git会告诉你" devel"完全合并到" master"。此外,log / gitk中没有任何迹象表明B作为合并提交的一部分被删除了。
答案 2 :(得分:0)
当在文件名中更改大小写(下/上)时,例如通过删除然后使用新案例重新创建它,就会在Windows上发生这种情况。
当您提取此更改时,删除将使git删除“错误”文件,因为Windows不区分大小写。
解决方法,如果你没有更改文件:使用git reset - filename和git checkout - filename