猿问

在Git克隆后直接显示为已修改的文件

目前,我的存储库有问题,尽管我的Git-fu通常很好,但似乎无法解决此问题。


当我克隆此存储库时,然后cd将其复制到存储库中,将git status显示多个已更改的文件。注意:我尚未在任何编辑器或任何工具中打开存储库。


我尝试按照以下指南进行操作:http : //help.github.com/dealing-with-lineendings/,但这对我的问题完全没有帮助。


我已经尝试了git checkout -- .很多次,但是似乎什么也没做。


我在Mac上,存储库本身没有子模块。


该文件系统是Mac上的“ Journaled HFS +”文件系统,不区分大小写。这些文件为一行,每个文件约79 KB(是的,您没听错),因此查看git diff并不是特别有用。我听说过这样做git config --global core.trustctime false可能会有所帮助,当我回到上面有存储库的计算机时,将尝试这样做。


我用事实改变了文件系统的细节!我尝试了git config --global core.trustctime false效果不佳的技巧。


12345678_0001
浏览 1215回答 3
3回答

米脂

克隆存储库后,我在Mac上遇到了同样的问题。假定所有文件都已更改。运行后git config --global core.autocrlf input,它仍将所有文件标记为已更改。寻找修复程序后,我.gitattributes在主目录中遇到了以下文件。* text=auto我将其注释掉,从现在开始,任何其他克隆的存储库都可以正常工作。

翻阅古今

我假设您正在使用Windows。您链接到的GitHub页面的详细信息向后。问题是CR + LF行尾已经被提交到存储库,并且因为您将core.autocrlf设置为true或input,所以Git希望将行尾转换为LF,因此git status表明每个文件都已更改。如果这是您仅想访问但不参与的存储库,则可以运行以下命令仅隐藏问题,而无需实际解决。git config core.autocrlf false如果这是您将积极参与并可以提交更改的存储库。您可能希望通过提交一次提交来解决该问题,该提交将存储库中的所有行结尾更改为使用LF而不是CR + LF,然后采取措施来防止将来再次发生。以下内容直接取自gitattributes手册页,应从干净的工作目录执行。echo "* text=auto" >>.gitattributesrm .git/index     # Remove the index to force Git togit reset         # re-scan the working directory.git status        # Show files that will be normalized.git add -ugit add .gitattributesgit commit -m "Introduce end-of-line normalization"如果出现任何不应标准化的文件,请git status在运行之前取消设置其text属性git add -u。manual.pdf      -text相反,Git未检测到的文本文件可以手动启用规范化。weirdchars.txt  text
随时随地看视频慕课网APP
我要回答