如何强制git检出主分支,并使用“text”属性对文件进行规范化之后删除回车符?
好的,所以我用像这样的行添加了文件.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"
但是现在我的工作拷贝还有回车! 我有未跟踪的文件,我想保留。 如何使用规范化的文件再次检查master分支?
我知道这些文件是在存储库中进行规范化处理的,因为当我克隆回购时,所有的文件都没有回车。
啊啊! 检出之前的提交,然后检出主。
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 -- .
我一直使用它,还没有find任何不好的方面呢!
对于一些进一步的解释, -z
在ls-files
输出的每个input的末尾附加一个空字符,而-0
告诉xargs
分隔这些空字符所接收的输出。