这是一个创建于 2785 天前的主题,其中的信息可能已经有所发展或是发生改变。
Remote 的 repo 全是 LF ,在 Windows 下, git bash 的 config 改为了 core.autocrlf=false ,但 pull 回来的代码全是 CRLF 。
在 Windows Bash 中, git 的 config 同样是 core.autocrlf=false ,但 pull 回来的代码就是 LF 。
现在我们跑一个自动部署脚本,会把开发代码 copy 到产品的 repo 中,之前所有同事都是在 Windows 上同步开发代码以及跑部署脚本的,所以导致开发代码全是 LF ,产品代码全是 CRLF ,我用 Bash on Windows 跑部署脚本 commit 时出现更改了全部文件。
上面的问题基本可以确定是个 Windows 下 git bash 不 follow config 里的 core.autocrlf 导致的,所以解决办法有两个,一个是我完全抛弃 Bash on Windows ,也完全使用 git bash ,“利用”同一个 Bug 与大家保持一致;另一个就是让大家全切换到 Linux 环境,绕过这个 Bug 。
第一个解决方案容易实现,但这里埋了一个坑,以后的同事可能会时不时掉进去;第二个推起来比较繁琐,需要很多同事一起做。
当然最好的解决方案就是找解决 git bash 这个 Bug 的方法。大家有什么好的建议吗?
2 条回复 • 2016-09-07 10:15:09 +08:00
|
|
1
Arnie97 2016-09-02 12:17:30 +08:00 1
因为懒得折腾,所以我在各平台都用 LF ,反正 Windows 记事本以外的文本编辑器大都支持 LF 。 另外,为了避免每个人的 config 不一致,可以使用.gitattributes 指定换行符类型。
|
|
|
2
quericy 2016-09-07 10:15:09 +08:00
git extension 会遵从设置,我记得用 IDE 也是能遵从 autocrlf 设置的
或者也可以考虑设置 autocrlf=input,pull 各按各的,push 统一提交为 LF 然后再配合 core.safecrlf 作为硬性限制
|