一个队友通过.gitattributes文件创建了一个相当棘手的问题,指定了一些行结束魔术(也称为重写)。
结果是,每当他的分支被签出时,git就会认为对不同的文件做了更改,即使是新的签出。因此,清除本地更改的正常尝试会失败,因为就像我说的,文件从一开始就被"更改"了。
最烦人的部分是,一旦签出了这个分支,就很难"离开"这个分支,因为任何签出另一个分支的尝试都会遇到
error: Your local changes to the following files would be overwritten by checkout
我的问题是:我怎样才能强制git签出另一个分支,并在git自己做了更改时放弃我的本地"更改"?以下是一些没有成功的尝试:
-
git checkout .
(仍然显示进行了本地更改) -
git clean -f
是这样的:
rm .gitattributes; rm -rf *; git checkout someotherbranch
有没有不那么激烈的方法来逃避这个。gitattribute问题?
事实证明,答案是如此惊人的简单,我几乎不相信它,但它似乎有效。添加-f强制签出:
git checkout -f someotherbranch