git - 澄清/清理 GIT 中的行尾问题

标签 git

我们有一个从 subversion 导出到 git 的存储库。此存储库供 Mac、Linux 和 PC 用户使用。毋庸置疑,行尾一团糟。有些文件以 CRLF、LF 或 CR 结尾,有些文件在一个文件中混合了这两种或三种。

添加 autocrlf = true 似乎可以稍微解决问题。然而,差异有时会变得很奇怪,即对文件的一行编辑会使差异中的所有行都发生变化(我假设这是由于文件的行尾都被重写了),有时一行编辑到文件工作正常。

是否有网站,或者有人可以解释一下我们如何解决这个问题?是否有我们必须设置的 git 设置,或者我们是否必须对所有文件进行批量更新以具有特定的行结尾或什么?

任何帮助将不胜感激,因为它一团糟!

(下面的 stackoverflow post 看起来可能有帮助,尽管它没有回答当我们有另一个 mac 或 pc 或 linux 用户提交另一个补丁时会发生什么)

最佳答案

这个相关的 SO 问题会引起您的兴趣:

Trying to fix line-endings with git filter-branch, but having no luck

这里是 a link来自 Github 的类似建议。

此外,正如 Greg Hewgill 的帖子中提到的,验证 future 的提交者是否使用正确处理新的行结束策略的编辑器是明智的。

当您说“添加 autocrlf = true 似乎可以稍微解决问题。”我假设这是使用 .gitattributes 完成的.

关于git - 澄清/清理 GIT 中的行尾问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522933/

相关文章:

git - 多个模块(主题)的推荐工作流程

git - 根据文件夹设置git凭据

java - 程序如何知道自己的 git SHA?

git - 为什么我没有得到相同的 SHA-1?

git - 我什么时候需要做 "git pull",在 "git add, git commit"之前或之后?

Git 生产和开发服务器工作流程

git - 如何在 Yocto 中递归地克隆一个带有子模块的 git repo

具有用户名和密码身份验证的 Git 服务器

git - 在 Github 中添加 git 标签时触发发布管道

javascript - Node Git : move branch pointer to different commit without checkout