使“更改行结尾后刷新存储库”工作

Noe*_*oel 5 git github

所有执行此操作的链接都会指向此链接:https://help.github.com/articles/dealing-with-line-endings/#platform-all

我正在尝试点击此链接,但无法使其正常工作。

我在 Windows 上。

我创建一个裸存储库,然后将其克隆到clone1. 我添加一个clone1带有混合行结尾(LF 和 CRLF)的文件并提交和推送。

现在我想修复行结尾。我设置core.autocrlf为并在存储库中true创建一个..gitattributes* text=auto

按照步骤,我删除除.git目录之外的所有内容,然后继续执行步骤:

rm .git/index
git reset
git status
Run Code Online (Sandbox Code Playgroud)

我的 git 状态告诉我有一个文件需要删除,这不是步骤所期望的 -Show the rewritten, normalized files.

然后我尝试在不删除文件的情况下执行此操作:

rm .git/index
git reset
git status
Run Code Online (Sandbox Code Playgroud)

但这不会导致进行任何更改。

我期望的是它会标准化文件行结尾,并且文件将有要提交的更改。

由于很多人都指向此链接进行关注,我相信我做错了什么,但看不到它?为什么这不起作用?

Chr*_*ris 7

我会推荐一个稍微不同的解决方案。

请确保您使用的是 Git 版本 2.16 或更高版本,而不是删除索引文件并重新生成它。此版本添加了一个新--renormalize选项git add

对所有跟踪的文件重新应用“清理”过程,以强制将它们再次添加到索引中。core.autocrlf在更改配置或属性后,这非常有用text,以便更正添加了错误的 CRLF/LF 行结尾的文件。该选项意味着-u.

只需运行git add --renormalize .并提交即可。