为什么可以';我不能提取/重新设置Git存储库的基础吗?

为什么可以';我不能提取/重新设置Git存储库的基础吗?,git,Git,我有一个本地Git存储库,我正在尝试与远程Git存储库同步。有一个二进制文件,我没有碰它。但我不能重新设定基准,因为一些奇怪的原因: git config --local core.autocrlf false git reset --hard --quiet git clean --force -d git fetch --quiet git checkout master Already on "master" git rebase --abort git stash warning: C

我有一个本地Git存储库,我正在尝试与远程Git存储库同步。有一个二进制文件,我没有碰它。但我不能重新设定基准,因为一些奇怪的原因:

git config --local core.autocrlf false
git reset --hard --quiet
git clean --force -d
git fetch --quiet
git checkout master
Already on "master"
git rebase --abort
git stash 
warning: CRLF will be replaced by LF in test_assets/favicon.ico.
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in test_assets/favicon.ico.
The file will have its original line endings in your working directory.
git rebase --strategy-option=theirs origin/master
Cannot rebase: You have unstaged changes.
Please commit or stash them.

M   test_assets/favicon.ico

我能做什么?

A
favicon.ico
文件通常是一个。您的Git警告:

告诉我们,您可能无意中指示Git将其视为文本文件

因此,当文件从存储库中出来时,Git会按照您的指示修改该文件。这就是为什么它显示为已修改,以及为什么在提交更改之前不能合并或重新设置基址,直到您告诉Git您想要的更改

解决方案是停止告诉Git这个文件是文本。很难说清楚你在哪里告诉Git这个文件是文本,因为这些东西有多种机制,但是如果你有一个
.gittributes
文件,你可以用它告诉Git这个文件,甚至任何名为
*.ico
的文件,肯定不是文本,方法是添加以下行:

*.ico   -text

到该
.gittributes
文件(然后可以
git添加
git提交
,以进行新的提交,该提交具有更新的
.gittributes
)。

a
favicon.ico
文件通常是一个。您的Git警告:

告诉我们,您可能无意中指示Git将其视为文本文件

因此,当文件从存储库中出来时,Git会按照您的指示修改该文件。这就是为什么它显示为已修改,以及为什么在提交更改之前不能合并或重新设置基址,直到您告诉Git您想要的更改

解决方案是停止告诉Git这个文件是文本。很难说清楚你在哪里告诉Git这个文件是文本,因为这些东西有多种机制,但是如果你有一个
.gittributes
文件,你可以用它告诉Git这个文件,甚至任何名为
*.ico
的文件,肯定不是文本,方法是添加以下行:

*.ico   -text

到该
.gittributes
文件(然后可以
git添加
git提交
,以进行新的提交,该提交具有更新的
.gittributes
)。

“提交或隐藏它们”?如消息所述,您需要进行阶段性更改,在您重新设置之前,我没有做任何更改。消息显示您修改了
test\u assets/favicon.ico
。git diff的结果是什么?它显示文件被修改了,但我没有碰它。如果我对同一份回购协议进行了彻底的核对,同样的故事就会重演。我没有碰任何东西,但文件显示为“已修改”。“提交或隐藏它们”?如消息所述,您需要先进行更改,然后才能重新生成。我没有做任何更改。消息显示您已修改
测试资产/favicon.ico
。git diff的结果是什么?它显示文件被修改了,但我没有碰它。如果我对同一份回购协议进行了彻底的核对,同样的故事就会重演。我什么都没碰,但文件显示为“修改”。