git clone后直接显示修改的文件
我目前遇到了一个存储库问题,虽然我的git-fu通常很好,但似乎无法解决此问题。
当我克隆这个存储库时,然后cd进入repo,git-status显示已更改的几个文件。 注意:我没有在任何编辑器或任何东西中打开回购。
我试着按照这个指南:http://help.github.com/dealing-with-lineendings/,但这对我的问题根本没有帮助。
我试过git checkout -- .
很多次,但似乎没有做任何事情。
任何帮助/想法将不胜感激
更新1:我在Mac上,回购本身没有子模块。
更新2:文件系统是Mac上的“Journaled HFS +”文件系统,不区分大小写。 这些文件是单行的,每个大约有79K(是的,你听到正确的),所以看着git diff
并不是特别有用。 我听说过做git config --global core.trustctime false
可能会有所帮助,当我回到计算机时,我会尝试使用回购协议。
更新3:用事实改变文件系统的细节! 并且,我尝试了git config --global core.trustctime false
技巧,这种技巧工作得不好。
克隆repo后,我在Mac上遇到了同样的问题,它会假定所有文件都已更改。
运行git config --global core.autocrlf input
它仍然将所有文件标记为已更改。 在寻找修复程序后,我在主目录中遇到了.gitattributes
文件,它具有以下内容。
* text=auto
我评论说,从现在开始任何其他克隆库工作正常。 希望这可以帮助那里的任何人。
我知道了。 所有其他开发人员都在Ubuntu上(我认为),因此具有区分大小写的文件系统。 但是,我不(因为我在Mac上)。 事实上,当我使用git ls-tree HEAD <path>
查看它们时,所有文件都是小写的双胞胎。
我会让他们中的一个把它整理一下。
git config core.fileMode false
在我的情况下解决了这个问题
https://www.kernel.org/pub/software/scm/git/docs/v1.7.10.1/git-config.html
TL; DR;
core.fileMode
如果为false,则索引和工作树之间的可执行位差异将被忽略; 对破碎的文件系统如FAT很有用。 请参阅git-update-index(1)。
缺省值为true,除非git-clone(1)或git-init(1)将在创建存储库时探测并设置core.fileMode为false(如果适用)。
链接地址: http://www.djcxy.com/p/30009.html