这些文件托管在 Windows 机器上,我想知道是否可以使用 Linux 管理 Git,所以我挂载了共享文件夹。然后我发现当执行 git status 时,所有文件都会显示为已修改,而且当尝试从这个共享文件夹推送时,它不接受我的密钥。
这张图片是同一时间、同一文件夹的快照。
Linux --------------------------------------------------------winGitBash
![enter image description here](https://istack.dev59.com/4soy2.webp)
这将有助于处理文本文件在不同操作系统上的换行符差异。git config --global core.autocrlf true
Git在换行符上的行为取决于几个配置:
对于您的情况,我怀疑以下可能是原因:
LF
存储。LF
转换为CRLF
。git status
时,“cygwin git”认为它正在工作在“*inux”环境下,因此该git认为本地仓库应该使用LF
检出文本文件。但是当它实际发现CRLF
时,它认为CRLF
已从LF
更改,因此git报告它们已被修改。要验证这一点(而不是修复它),您可以执行以下操作:
# under linux
# save your change
git stash
# delete working directory
git rm --cached -r .
# re-checkout
git reset --hard
然后再次运行git status
,你将/应该看到输出报告没有修改。
参考资料:
git diff
显示那些文件中的修改是什么? - user849425