在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。这有什么关系吗?


当前回答

我遇到的另一种可能性是,存储库中的一个包最终具有分离的HEAD。如果这里的答案都没有帮助,你遇到了这样的git状态消息,你可能有同样的问题:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   path/to/package (new commits)

进入路径/to/package文件夹,git状态应该产生以下结果:

HEAD detached at 7515f05

下面的命令应该修复这个问题,master应该被你的本地分支替换:

git checkout master

您将得到一条消息,您的本地分支将在远程分支后面提交一些数量的文件。快点拉,你应该脱离险境了!

其他回答

我遇到的另一种可能性是,存储库中的一个包最终具有分离的HEAD。如果这里的答案都没有帮助,你遇到了这样的git状态消息,你可能有同样的问题:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   path/to/package (new commits)

进入路径/to/package文件夹,git状态应该产生以下结果:

HEAD detached at 7515f05

下面的命令应该修复这个问题,master应该被你的本地分支替换:

git checkout master

您将得到一条消息,您的本地分支将在远程分支后面提交一些数量的文件。快点拉,你应该脱离险境了!

如果其他答案不工作,尝试添加文件,然后重置

$ git add -A
$ git reset --hard

在我的情况下,这有助于当有一堆空文件,git正在跟踪。

如果您使用的是面向Windows的Git,那么这可能就是您的问题

我也遇到过同样的问题,隐藏,硬重置,清理,甚至所有这些都仍然留下了变化。原来的问题是git没有正确设置x文件模式。这是windows git的一个“已知问题”。gitk和git的本地变化显示为旧模式100755新模式100644,没有任何实际的文件差异。

修复方法是忽略文件模式:

git config core.filemode false

更多信息请点击这里

我已经通过以下步骤解决了这个问题

从Git的索引中删除每个文件。 Git rm——cached -r。 重写Git索引以获取所有新的行结束符。 Git重置——很难

解决方案是配置Git处理行结束部分描述的步骤的一部分

类似的问题,虽然我确定只是表面上的。不管怎样,它可能会帮助某些人:我所做的(FWIW,在SourceTree):隐藏未提交的文件,然后进行硬重置。