微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Git:更改EOL后如何恢复文件历史责任跟踪?

如何解决Git:更改EOL后如何恢复文件历史责任跟踪?

我们有一些最初在 Windows 下使用 EOL (CRLF) 创建的文件和其他使用 Linux (LF) 创建的文件,有时 IDE(或重新安装后配置错误的 Git)更改了这些 EOL 覆盖并使我们丢失了整个历史记录文件blame 完全没用,只是使用 -w 有效)。

我尝试跟踪文件最后一次正常的时间,在 EoL 切换并替换它之前,但没有工作,从另一个分支检索该文件。 由于文件总是有最小的变化,我在几次提交和合并后没有注意到这个问题,我有一个 6 个月大的分支,原始 EOL。

如何修复这些文件

解决方法

你需要用 -w 来责备:

git blame -w some-file

还有其他选项可以控制这一点,-w 表示“不考虑空格/制表符/新行更改”。

以防万一,您首先应该不要进行这些 EOL 更改。从长远来看,他们很痛苦。

自我宣传警告:这篇“文章”(由于没有更好的词)谈论合并时的 EOL 变化。它还指出了解决 EOL 问题的方法……但是在使用脚本时要考虑一些注意事项……您可能会从中开发一些东西(无跟踪,无货币化)。 http://www.ezconflict.com/en/conflictsse16.html#x80-1200003.2

,

Blame 使用您的文本转换,因此您可以对内容运行任何您想要的 prepass。

echo itssamsfault.c diff=demanglenewlines >>.git/info/attributes
git -c diff.demanglenewlines.textconv="sed 's,\r+$,'" blame itssamsfault.c

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。