为什么Git提交旧版本的文件?

时间:2014-12-31 12:23:23

标签: git

我遇到了一个严重的问题:每天大约两次,git不正确地提交一个版本的文件,该文件在提交时有更多当前修改。

错误的工作流程:

  • Example.php会连续修改三个小时。
  • 在17:42,文件已提交并进入SHA 200a5a3
  • 在18:22,在审核拉取请求时,我意识到提交的文件是先前的(从未提交过的)版本,在15:34编码[根据PHPStorm],在之前<1> 8分钟文件已提交。
  • 工作副本文件正确,其最后修改时间戳为2014-12-30 17:04,提交前38分钟。

git怎么可能记得&#39;不管怎么说,3点30分,当我没有将更改提交到5:42时,文件是什么样的?难道它只知道5:04版本吗?

但更重要的是,为什么会发生这种情况?如何阻止它?

1 个答案:

答案 0 :(得分:1)

PHPStorm(以及所有的Intellij IDE系列)喜欢使用源代码控制做一些时髦的事情,以便为用户规范化源代码控制界面(无论你使用Git,Mercurial还是Subversion,版本控制看起来都一样)

出于这个原因,我从不使用我的IDE来提交我的提交(因为PHPStorm不支持​​使用git commit -S进行PGP签名提交)。

最可能发生的事情是PHPStorm在某个时刻正在调用git add <file>,并且由于某种未知原因在提交之前未能再次调用它。所以旧的更改会添加到索引(然后提交),而工作目录中的文件仍有待更改。

出于这个原因,我建议你不要依赖PHPStorm来处理源代码控制,并且总是使用CLI。