当我将文件复制到git控制目录中的另一个文件的顶部时...我看到git认为整个文件已经改变而不是一个小块...为什么?
这是我的意思的一个例子... http://github.com/cmodien/fileupdatetest/commit/90309ed099e257cd98218b4504cd2cd3a3a47a27
好的...我检查了文件中的行结尾...原始文件有crlf行结尾.我粘贴在原始文件上的文件有lf行结尾.这有道理我猜...我从Windows用户那里得到了原始文件,并且我从mac用户那里收到了新文件.
我该如何解决?
正如 Twitter 上提到的,(@adymitruk) 您遇到了行结尾问题。AutoCRLF 设置可能没有设置为“false”,因为它应该是 - 除非您正在进行跨平台开发。
解决方案是将其设置为 false,修复行结尾,将 autocrlf 设置为 false,然后提交。完成此操作后,您将能够复制这些文件,然后只能看到实际的更改。
我用这个来解决这个问题...
尝试使用 git filter-branch 修复行结尾,但没有运气
我最初尝试遵循这个... http://help.github.com/dealing-with-lineendings/但有点不清楚在 mac/nix 上你需要将 core.autocrlf 设置为输入而不是 true。
另一个稍微复杂的问题是,我的 gitignore 中忽略了一些文件,我也需要修复这些文件......所以这个命令:
git diff --cached --name-only -z | xargs -0 git add
Run Code Online (Sandbox Code Playgroud)
失败了...所以我必须运行这个...
git diff --cached --name-only -z | xargs -0 git add -f
Run Code Online (Sandbox Code Playgroud)
强制它修复被忽略的文件......
| 归档时间: |
|
| 查看次数: |
4175 次 |
| 最近记录: |