2012-03-26 4 views
2

は、ここに私がやったことだ: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の状況を入力すると、Gitは私が私のレポ内のすべてのファイルを削除したことを私に示して、私はコミットのためにそれらを上演していること。それはまた、すべてのファイルがuntrackedとして私に示しています。

$ 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を入力すると、その後、それがコミットすべき変更がないことを示しました。

これはなぜ起こっているのですか?

+0

何かが明らかにインデックスを破壊しましたが、何もわかりません。どちらのオペレーティングシステムですか(つまり、LinuxではそうではないWindows上の問題を想像することができます)。 –

+0

「何かが明らかにインデックスを破壊しました」 - それは私が思ったことです。しかし、「git pull」の前の 'git status 'は疑わしいものは何も表示しませんでした。これはOSX Lionにあります。 – ErJab

+0

Hm、OSXはファイルシステム上でPOSIXセマンティクスを持つ必要があります。したがって、索引がロックされている可能性は低いです。だから私は壊れたフックかバグかと言っていました。 –

答えて

1

手掛かりなぜこれが起こっているが、それは早送りプルなので、あなたは、単に

git reset --hard origin/master 

すべてをunstageと原点にmasterへのごWCが等しい取得することができます。

1

私はこの問題を抱えていました(Visual Studio 2013とGit ExtensionsとPowershell-Powershellを一度に使用しすぎていると思います)。 gitフォルダに格納されたので、今度は "index.lock"と呼ばれていました。

Visual Studio 2013にこれが通知されたので、私のソリューションのルートにある.gitファイルのindex.lockを削除しました。しかし、これはgitがインデックスファイルを再生成し、私のすべてのファイルを削除したことを示しました! gitプラグインのいずれも、インデックスがこれに当てはまると言っていたのと同じことを示しました。

nuget経由でアップグレードしてから、コミットされていない変更がたくさんあったので、ハードのリセットをしたくありませんでした。

代わりに、削除されたindex.lockファイルを復元し、新しく生成されたインデックスファイルを削除し、index.lockという名前をindexに変更しました。

その後、Visual Studioでソリューションを閉じて再オープンして元のインデックスファイルを作成したので、ソリューション全体を削除したかったと思わなくなりました。

関連する問題