128

好的,所以我.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"

但是现在我的工作副本仍然有回车!我有想要保留的未跟踪文件。如何使用规范化文件再次 git checkout master 分支?

我知道文件在存储库中已标准化,因为当我克隆存储库时,所有文件都没有回车。

4

3 回答 3

322

啊啊!签出上一个提交,然后签出主提交。

git checkout HEAD^
git checkout -f master
于 2013-06-20T20:58:20.147 回答
20

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

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

或一行

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

我一直在使用它,还没有发现任何缺点!

为了进一步解释,-z将一个空字符附加到每个条目输出的末尾 by ls-files,并-0告诉xargs它用这些空字符分隔它正在接收的输出。

于 2015-11-24T20:24:05.833 回答
1
存储(保存)您的更改

git stash

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

git checkout .

现在切换到主分支

git checkout master

于 2021-09-25T10:15:32.747 回答