这是基本问题: git似乎将我的所有文件标记为已更改,即使没有更改。即使差异没有显示任何差异,它仍然希望我重新上演/提交所有文件。我怎样才能说服git在仍然跟踪该点所做的更改的方式上没有任何变化?
我有一个git存储库,我在两台独立的计算机上编辑(两者都是Mac)。我使用USB记忆棒上的加密文件系统映像传输它们并使用rsync进行复制。当我将文件传输到笔记本电脑时,所有文件都标记为已更改。如果我只是忽略git并处理文件,rsync'回来,另一台机器将再次正确识别已更改的文件。所以它有点工作,但是当我无法提交我的更改,直到我回到另一台机器时,在我的笔记本电脑上工作真的很不方便,因为那时我将不得不在一次单一的签入中提交一些更改。
答案 0 :(得分:5)
事实证明,毕竟不是终点线。我怀疑这个解决方案,因为我认为git会显示每一行都改变了 - 它没有。但今天我偶然发现了一个小小的条目,当我在我的工作机器上检查文件时 - 文件访问权限已经被改变从644到755(反之亦然)机器之间。
解决方案就在这个问题的stackoverflow上: How do I make git ignore mode changes (chmod)?
答案 1 :(得分:3)
我会检查传输中是否更改了行结尾。虽然这可能是一个真正难以处理的问题,但您可以使用core.autocrlf
选项帮助控制它,如this question中所述。
我也肯定会查看GitHub's help section on line endings,因为它在处理这类问题方面有一些很好的建议(假设它确实是你的问题)。