git显示我删除了我的repo中的所有文件,并在我执行git pull之后将它们暂存。为什么?

时间:2012-03-26 07:06:34

标签: git git-pull

这就是我的所作所为:

$ git pull
remote: Counting objects: 446, done.
remote: Compressing objects: 100% (372/372), done.
remote: Total 383 (delta 280), reused 0 (delta 0)
Receiving objects: 100% (383/383), 652.75 KiB | 381 KiB/s, done.
Resolving deltas: 100% (280/280), completed with 43 local objects.
Fast-forward
<list of files and summary of changes>

现在当我输入git status时,git告诉我,我删除了repo中的所有文件,并且我将它们暂存为commit。它还向我显示所有文件未跟踪。

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    ....
#   deleted:    ....
#   deleted:    ....
<a list of all files in the repo>
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
<a list of all top-level files and folders in the repo>

然后当我输入git add .然后git status时,它显示没有要提交的更改。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:3)

不知道为什么会发生这种情况,但由于它是一个快进的拉动,你可以简单地

git reset --hard origin/master

取消所有内容,让你的WC等于master来源。

答案 1 :(得分:1)

当我遇到这个问题时(我认为由于同时使用了太多Git插件:Visual Studio 2013和Git Extensions和Powershell - Powershell获胜!) - 这是因为我将我的索引文件锁定在.git中文件夹,所以它现在被称为“index.lock”。

Visual Studio 2013告诉了我这个,所以我删除了我的解决方案根目录中的.git文件中的index.lock。但是,这意味着git重新生成了一个索引文件,并显示我删除了所有文件!任何一个git插件都显示了与索引告诉他们情况相同的事情。

我不想做一个硬git重置,因为自从通过nuget升级以来我烦人地有很多未提交的更改。

所以我改为删除了index.lock文件,删除了新生成的索引文件,并将index.lock重命名为index。

然后关闭并在Visual Studio中重新打开解决方案,现在它有原始索引文件,它不再认为我想要删除整个解决方案!