gpt4 book ai didi

windows - Git:由于行尾而无法放弃更改?

转载 作者:可可西里 更新时间:2023-11-01 09:24:03 28 4
gpt4 key购买 nike

“突然”我在 GitHub 上托管的 git 存储库开始遇到这个问题。

每当我将一个远程分支 pull 到我的计算机时(即使是在存储库的第一个克隆上),一组任意(?)文件显示为“未暂存提交的更改”。我在 Windows 8.1 上运行并使用 SourceTree旁边Git Bash作为 git 客户端。

检查这些文件中的变化表明它们没有任何变化,也许除了行结尾。我不知道如何在比较时查看行尾,所以不能确定。

当我尝试“放弃”这些更改时,它根本不起作用。 git reset --hard 根本没有效果,更改仍然存在。

为什么会这样?我怎样才能让它消失? :)

PS - 当我运行 git config -l 时,我看到 core.autocrlf=true 在列表中出现了 3 次。

PPS - 我在存储库的根目录中有一个 .gitattributes 文件。删除它对上述症状没有任何影响。它是几天前首次添加的。除了文件开头的 * text=auto 外,它都被注释掉了。

更新:

我找到了重现我的问题的最少步骤:

  1. 我在文本编辑器中打开一个文件,在某处添加一个空格并保存。
  2. 该文件出现在“未暂存提交的更改”下(很明显)。
  3. 我从文件中删除单个空格并保存。
  4. 尽管 SourceTree 的 diff 和 Kdiff3 都显示该文件是二进制文件,但该文件仍保留在“未准备提交的更改”下。

请注意,此示例中的文件在我编辑之前和编辑之后都有 CRLF 行结尾 - 我不明白为什么 git 坚持将文件标记为已更改。

更新 2:

运行 git diff --raw MyProject/app.config 其中 MyProject.app/config 是标记为已更改的文件之一:

:100644 100644 b960510... 0000000... M MyProject/app.config

第二个 SHA1 全为零这一事实在我看来像是一条线索 - 但我不知道这意味着什么。

最佳答案

这是在事后设置 core.autocrlf 时的常见问题。你可以试试this procedure来自 GitHub 帮助。另一个简单的解决方案是只克隆存储库的新本地副本,如果您仍然遇到问题,这也是一个很好的故障排除步骤。

关于windows - Git:由于行尾而无法放弃更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618731/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com