为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
12345678_0001 2019-10-05 13:28:08
目前,我的存储库有问题,尽管我的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效果不佳的技巧。
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

克隆存储库后,我在Mac上遇到了同样的问题。假定所有文件都已更改。


运行后git config --global core.autocrlf input,它仍将所有文件标记为已更改。寻找修复程序后,我.gitattributes在主目录中遇到了以下文件。


* text=auto

我将其注释掉,从现在开始,任何其他克隆的存储库都可以正常工作。


查看完整回答
反对 回复 2019-10-05
?
翻阅古今

TA贡献1780条经验 获得超5个赞

我假设您正在使用Windows。您链接到的GitHub页面的详细信息向后。问题是CR + LF行尾已经被提交到存储库,并且因为您将core.autocrlf设置为true或input,所以Git希望将行尾转换为LF,因此git status表明每个文件都已更改。


如果这是您仅想访问但不参与的存储库,则可以运行以下命令仅隐藏问题,而无需实际解决。


git config core.autocrlf false

如果这是您将积极参与并可以提交更改的存储库。您可能希望通过提交一次提交来解决该问题,该提交将存储库中的所有行结尾更改为使用LF而不是CR + LF,然后采取措施来防止将来再次发生。


以下内容直接取自gitattributes手册页,应从干净的工作目录执行。


echo "* text=auto" >>.gitattributes

rm .git/index     # Remove the index to force Git to

git reset         # re-scan the working directory.

git status        # Show files that will be normalized.

git add -u

git add .gitattributes

git commit -m "Introduce end-of-line normalization"

如果出现任何不应标准化的文件,请git status在运行之前取消设置其text属性git add -u。


manual.pdf      -text

相反,Git未检测到的文本文件可以手动启用规范化。


weirdchars.txt  text


查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 1214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信