在git重置后——很难,git状态给了我在Changes not staging for commit:部分中的文件。

我也试过git reset ., git checkout。而git check - out-index -f -a,毫无用处。

那么,我怎样才能摆脱这些未分阶段的变化呢?

这似乎只影响Visual Studio项目文件。奇怪。请看这个粘贴:http://pastebin.com/eFZwPn9Z。这些文件的特殊之处在于,在.gitattributes中我有:

*.sln        eol=crlf
*.vcproj     eol=crlf
*.vcxproj*   eol=crlf

另外,在我的全局.gitconfig中,selflf被设置为false。这有什么关系吗?


当前回答

Git不会重置不在存储库中的文件。所以,你可以:

$ git add .
$ git reset --hard

这将执行所有更改,这将使Git知道这些文件,然后重置它们。

如果这不起作用,你可以尝试隐藏并删除你的更改:

$ git stash
$ git stash drop

其他回答

环境:Visual Studio 2019 + git + Azure DevOps。

行为

在尝试硬复位后遇到这种情况,但我的不是由于行结束。

Git在执行一些命令时挂起;换句话说,它永远不会回到命令提示符。它将显示给定命令中的文件已被处理,但它不会完成命令的所有“阶段”。

以Git克隆为例:

解决方案

创建一个新的个人访问令牌PAT

与我现有的PAT有关的安全/凭据问题,但我找不到任何日志告诉我它失败了。

正如其他答案所指出的,这个问题是因为行尾自动纠错。我在*.svg文件中遇到了这个问题。我使用svg文件图标在我的项目。

为了解决这个问题,我让git知道svg文件应该被视为二进制文件,而不是文本,方法是在.gitattributes中添加下面的行

* .二进制

我也有同样的问题。我做了git重置-硬头,但仍然每次我做git状态,我看到一些文件被修改。

我的解决办法相对简单。 我只是关闭我的IDE(这里是Xcode),关闭我的命令行(这里是我的Mac OS上的终端),再试一次,它工作了。

然而,我始终无法找到问题的根源。

试着简单地 Git恢复。

这就是少管所说的&它起作用了

检查你的.gitattributes。

在我的情况下,我有*.js文本eol=lf在它和git选项核心。独裁者说得对。

它给我带来的情况,当git自动转换我的文件行结束,并阻止我修复它,甚至git重置-硬头没有做任何事情。

我修复了它与注释*.js文本eol=lf在我的.gitattributes和取消注释它之后。

看起来就像变魔术了。