首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有人能解释为什么"git状态“显示在linux共享下运行时被修改过的文件吗?

有人能解释为什么"git状态“显示在linux共享下运行时被修改过的文件吗?
EN

Stack Overflow用户
提问于 2012-02-22 22:44:21
回答 3查看 618关注 0票数 5

这些文件托管在windows机器上,我想知道我是否冷地使用我的Linux机器来管理git,所以我挂载了共享。然后我看到,当执行git状态时,所有文件都显示为已修改的,并且当试图推送这个共享时,它不会接受我的密钥。

图片来自相同的快照,同时来自同一个文件夹.

Linux

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-24 08:07:36

这篇博客文章很好地解释了这一点。基本上,设置以下内容是个好主意:

git配置--全局core.autocrlf真

票数 5
EN

Stack Overflow用户

发布于 2012-02-23 00:26:25

您检查过这两台机器上的crlf设置了吗?一个可能是重新创建文件作为CRLF (Windows),而另一个只有LF结束。对于“修改”状态来说,这就足够了。

不要忘记你的个人设置以及回购设置。

票数 5
EN

Stack Overflow用户

发布于 2015-04-10 02:25:23

git在换行符上的行为取决于几种配置:

  • core.eol
  • core.autocrlf
  • .gitattributes文件

对于你的情况,我怀疑下面可能是原因。

  • 在您的git“数据库”(.git)中,所有文本文件都以换行符LF存储。
  • 在结帐git将LF转换为CRLF期间,您的本地回购是在Windows下克隆的。
  • 当您在Linux/cygwin下执行git status时,因为"cygwin“认为它在"*inux”环境下工作,所以git认为本地回购应该使用LF签出文本文件。当它实际找到CRLF时,它认为CRLFLF不同,所以git报告它们被修改了。

要验证这一点(而不是修复此问题),您可以这样做:

代码语言:javascript
运行
复制
# under linux 

# save your change
git stash

# delete working directory
git rm --cached -r .

# re-checkout
git reset --hard

再次运行git status,您将/应该看到输出报告没有任何修改。

参考文献:

注意你的台词的结尾

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9404386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档