如何强制git在I';之后签出主分支并删除回车符;ve使用";“文本”;属性

如何强制git在I';之后签出主分支并删除回车符;ve使用";“文本”;属性,git,newline,core.autocrlf,Git,Newline,Core.autocrlf,好的,所以我添加了文件.gittributes,其中有这样的行 *.css text *.js text etc... 然后,我按照现场的指示进行操作 但现在我的工作副本还有回车!我想保留未跟踪的文件。如何让git使用规范化文件再次签出主分支 我知道这些文件在存储库中是标准化的,因为当我克隆repo时,我拥有所有没有回车符的文件。啊哈!签出上一次提交,然后签出主机 git checkout HEAD^ git checkout -f master 正如其他人指出的那样,我们可以删除回购协议中

好的,所以我添加了文件
.gittributes
,其中有这样的行

*.css text
*.js text
etc...
然后,我按照现场的指示进行操作

但现在我的工作副本还有回车!我想保留未跟踪的文件。如何让git使用规范化文件再次签出主分支


我知道这些文件在存储库中是标准化的,因为当我克隆repo时,我拥有所有没有回车符的文件。

啊哈!签出上一次提交,然后签出主机

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 -- .
我一直在用它,还没有发现任何缺点


为了进一步解释,
-z
在由
ls文件
输出的每个条目的末尾追加一个空字符,
-0
告诉
xargs
用这些空字符分隔它接收的输出。

感谢这种解决方法,但在git中,“checkout-f”是一个突出的问题不会强制重新签出。另一个解决方法是首先删除所有工作副本文件(即除了.git dir之外的所有文件)。啊,是的,谢谢!听到这些,我猜我们可以删除感兴趣的文件并运行签出。对我来说,实际上只有一个文件我正试图得到纠正。当然,它可能是所有的文件,数百个或数千个。这在git 1.8.3(mac)上失败,错误:pathspec'HEAD^'与git已知的任何文件都不匹配。@dval,查看对这篇文章的编辑,您将看到另一种方法。我也在Mac电脑上运行,这对我很有用。我还鼓励您将git升级到2+,您可以使用自制软件以安全可维护的方式来实现这一点,但这并不能真正起作用。GIT将只更新在两次提交之间更改的文件(有些例外)。如果存储库是全新的,例如只有两个提交,而第一个提交恰好是空的,那么此解决方案将起作用。否则,您需要按照mechsin的回答强制删除所有文件。
git ls-files -z | xargs -0 rm ; git checkout -- .