git - 双启动ubuntu和带有独立数据分区的windows

时间:2013-08-06 10:54:47

标签: windows git ubuntu

我刚刚在侧窗7上安装了ubuntu 7.我所有的git本地工作文件夹都在一个单独的数据分区上。

一切都是在Windows 7的git中提交的,但是在ubuntu的git中,运行git status会显示修改后的所有内容。当我尝试git log时,所有的历史记录仍然存在。

每次切换到其他操作系统时,我都不想提交所有内容。有解决方案吗?

3 个答案:

答案 0 :(得分:4)

您的问题是,当您使用git默认配置检出Windows上的文件时,它们是在工作目录中使用CRLF(Windows默认)行结尾创建的,但是作为LF提交为跨平台兼容性。

现在你的Linux在每一行都看到了CRLF并且说它与回购中的LF不同。这就是为什么每条线都被报告为不同的原因。

我建议在Windows上将行结尾设置为LF。在a previous answer我解释了如何做到这一点的细节。遵循这些步骤还可以在linux上启用行结束规范化到LF,如果您不小心在Windows上创建了一些CRLF并在以后在linux中提交,这将避免出现问题。

您也可以完全禁用行结束规范化,但这可能会在将来造成麻烦,除非您只使用一组完全固定的编辑器,其行结束处理您将非常了解。

答案 1 :(得分:2)

问题在于Windows上的换行符约定与Linux不同,因此在Ubuntu端,每个文件看起来都是完整修改的(在每行结束之前添加了一个CR)。这通常是因为repo以某种级别autocrlf签出:在repo中,文件具有LF约定,但在Windows上签出时,文件具有CRLF行结尾。

如果您想安全地与Windows和Linux共享工作副本,请should just turn off core.autocrlf

答案 2 :(得分:0)

我猜测行结尾存在问题。您可能已经使用Windows行结尾提交了代码,当您在ubuntu git中检出代码时,将这些代码转换为unix样式行结尾。

请查看此页面Dealing with line endings