当 .git 属性使 git 认为已进行本地更改时,Git 命令检查另一个分支

Git command to checkout another branch when .gitattributes makes git think local changes were made

一位队友通过 .gitattributes 文件创建了一个相当棘手的问题,指定要发生的一些行结束魔术(也称为重写)。

结果是每当他的分支被签出时,git 认为对各种文件进行了更改,即使是重新签出也是如此。因此,消除本地更改的正常尝试失败了,因为正如我所说,文件从一开始就是 "changed"。

最烦人的部分是,一旦这个分支被签出,就很难 "leave" 这个分支,因为任何试图签出另一个分支的尝试都会遇到

error: Your local changes to the following files would be overwritten by checkout

我的问题:当 git 自己进行更改时,我如何强制 git 签出另一个分支并丢弃我的本地 "changes"?以下是一些无效的尝试:

这是有效的方法:

rm .gitattributes; rm -rf *; git checkout someotherbranch

是否有更简单的方法来避免这个 .git 属性问题?

事实证明答案非常简单,我几乎不相信它,但它似乎有效。添加 -f 以强制结帐:

git checkout -f someotherbranch