【问题标题】:No local changes at all yet git status reports modified根本没有本地更改 git 状态报告已修改
【发布时间】:2013-11-05 05:36:15
【问题描述】:

我在 Linux A 上有一个 repo 推送到 GitHub,然后被拉到另一个 Linux B。

我已将 *.dat 更改为 .gitattributes 中的文本。并将其推拉到 Linux B。

在 Linux B 上,git 状态报告所有 .dat 文件都已修改。

在 Linux B 上,我执行 git reset --hard HEAD

Linux B git status still 报告所有 .dat 文件都已修改

现在,如果我将更改从 Linux A 推送到 GitHub,Linux B 拉取报告 “错误:您对以下文件的本地更改将被合并覆盖” 列出的文件都是 .dat 文件。

git diff 列出每行更改,但它是一个 Unix 格式文件,而 repo 存储 Unix 格式文件。

有什么想法吗?

【问题讨论】:

  • 我原以为在 Linux B 上进行硬重置后,您应该已经同步了存储库。也许尝试git clean -fdx,如果仍然没有帮助,请重新规范化 Linux B 存储库(这个link 可能会有所帮助)
  • 当我将更改提交到 repo 时,它报告将行尾从 CRLF 更改为 LF。我推测作为一个二进制文件,CRLF 被放入了 repo。然后我改变了它的存储类型,所以在 repo 中应该有 LF,但是因为它是 CRLF,所以报告了修改。有人可以确认吗?
  • @miqid - 我刚刚注意到你的评论。重新规范化将解决这个问题。谢谢。

标签: git


【解决方案1】:

更改属性并提交/推送.gitattributes 文件是不够的。

您需要添加、提交和推送受您的修改影响的文件,如this answer

如果您没有任何正在进行的工作:

git rm --cached -r .
git reset --hard
git add .
git commit -m " *.dat are now text"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多