首页 > 解决方案 > wsl: git pull 暂时认为有局部变化

问题描述

我在 Windows 子系统 for linux (WSL) 下检查了一个 git repo。该 repo 以前是使用 git for windows 在文件系统上创建的,我习惯从 windows 和 WSL 访问它。

我定期从 WSL 中的备用遥控器(git pull alt_remote master)同步。通常这应该触发合并提交,编辑器打开,我保存消息并且合并完成。

相反,pull 列出了 pull 中的一些文件子集,这表明我有将被破坏的本地更改,我需要提交或存储它们。我没有对这些文件进行任何更改。

几秒钟后我再次尝试相同的命令,它成功了,好像没有问题一样。

我怀疑换行策略以及 git 如何修改文件以匹配配置设置存在一些问题。有没有推荐的方法我可以在任一/两个 Windows/WSL 上配置 git,以便它们可以相互配合,并且我不会遇到这些故障?我设置了 core.autocrlf=true。

标签: gitwindows-subsystem-for-linux

解决方案


我建议你使用core.autocrlf input.

来自https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

如果您在使用 LF 行结尾的 Linux 或 macOS 系统上,那么您不希望 Git 在您检出文件时自动转换它们;但是,如果意外引入了带有 CRLF 结尾的文件,那么您可能希望 Git 修复它。您可以通过将 core.autocrlf 设置为输入来告诉 Git 在提交时将 CRLF 转换为 LF,但不能反过来:

$ git config --global core.autocrlf input

推荐阅读