我开始看到,在我的大学的一些提交中,他们更改了几行的文件被“标记”,就好像他们完全修改了它们一样。我们正在失去对这些文件使用 Git Blame 来查看“谁更改了哪一行”的可能性
我不知道他们在做什么“错误”来覆盖文件并使 Git 失去 Blame 的能力,这可能与变基有关吗?还是rebase -i
压扁?,这是与 Git 版本相关的错误吗?,他们使用 Linux 而我使用 Windows 我在我们的 git 存储库(Assembla)上创建了一个辅助帐户并试图重现这个但我不能
前
后
这很可能是因为文件正在更改 EOL 格式。为什么?可能是因为开发人员对此不小心(IDE 把他们弄乱了?)......或者,很可能,您已经设置了 git 来更改文件的 EOL 格式(core.autocrlf
响铃?)。您仍然可以使用git blame -w
. 我最好的建议:重写分支的历史记录,这样 EOL 格式就永远不会发生(它有一个价格标签……就努力而言,以防万一)……并且不要设置 git 来更改 eol 格式。
PS 我正在编写有关如何处理冲突的指南,并且我目前正在编写一个脚本,以便能够轻松地重写分支的历史记录,以便更正 EOL 格式更改....但它会几天后准备好,直到我发布它。如果你愿意,我可以在这里写一个更新。该指南位于http://www.ezconflict.com/(无跟踪,无货币化)。
PS2:更正 EOL 更改的脚本。它假定(实际上检查)您要求更正的是直分支,没有合并。提供具有正确 EOL 格式的最新修订、分支的提示(分支名称或修订)以及需要更正的文件列表。
https://github.com/eantoranz/conflict_book/blob/main/scripts/correct_eol.sh
顺便说一句,烤箱里仍然很热。谨慎使用(它不会移动任何分支,以防万一)。