在使用“ text”属性规范化文件之后,如何强制 git 签出主分支并删除回车?

好的,我添加了 .gitattributes文件,行如下所示

*.css text
*.js text
etc...

然后我按照 http://git-scm.com/docs/gitattributes#_checking-out_and_checking-in的说明进行操作

$ rm .git/index     # Remove the index to force Git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"

但是现在我的工作副本还有马车回来!我想保留一些未被追踪的文件。如何使用规范化文件再次签出主分支?

我知道这些文件在存储库中是规范化的,因为当我克隆回购文件时,所有的文件都没有回车。

367160 次浏览

啊啊! 检查以前的提交,然后检查主服务器。

git checkout HEAD^
git checkout -f master

正如其他人指出的那样,人们只需删除回购中的所有文件,然后检查它们。我更喜欢这种方法,它可以用下面的代码完成

git ls-files -z | xargs -0 rm
git checkout -- .

或者一句台词

git ls-files -z | xargs -0 rm ; git checkout -- .

我一直都在用,还没发现有什么不好的地方!

对于一些进一步的解释,-zls-files输出的每个条目的末尾附加一个空字符,而 -0告诉 xargs分隔这些空字符接收到的输出。

隐藏(保存)您的更改

git stash

对当前分支进行更新,直到最后一次远程提交为止(开始清除没有未跟踪/修改的文件)。.以防万一)

git checkout .

现在切换到主分支

git checkout master