2013-10-08 104 views
3

我的Git狀態顯示我工作樹中的所有文件deleted不正確,它們仍然存在。Git狀態報告已刪除的文件仍然存在

要解決它,我應該執行git reset --hard這會將所有修改重置到其他文件。

任何想法如何解決它或它是如何發生的?

git status輸出:

On branch develop 
Your branch is behind 'origin/develop' by 15 commits, and can be fast-forwarded. 

Changes to be committed: 
(use "git reset HEAD <file>..." to unstage) 

deleted: .gitignore 
deleted: v3/.gitignore 
deleted: v3/index-test.php 
deleted: v3/index.php 
deleted: v3/protected/.gitignore 
deleted: v3/protected/.htaccess 
deleted: v3/protected/Gruntfile.js 

編輯:上面不是完整的git status輸出。 我正在處理的那些文件沒有被刪除。

+0

它有助於在這裏顯示的輸出,即使它修剪了一下,路徑模糊。此外,討論您在解決此問題時所做的工作也很有幫助。這聽起來像是文件在索引中被刪除,但出現在工作副本中。但是我無法從你的描述中看出來。 – jszakmeister

+0

是的,他們正在上演刪除。我將添加'git status'輸出到問題。 – bolbol

+0

這是你的'git status'輸出的全部內容,還是你對它進行了剪切?我問的原因是因爲你說你修改了其他文件,並且從你的'git status'輸出中,它不會出現這種情況。 – jszakmeister

回答

1
git co my_annoying_file 
    git rm my_annoying_file 
    git commit -m "removing annoying file" 

現在他們真正從git的跟蹤

刪除......也git reset --hard可能是脆這種情況下,考慮git reset HEAD my_annoying_file

+0

謝謝。但它不只是一個惱人的文件..它是整個工作樹。 – bolbol

+0

同樣應該適用於文件夾,但它聽起來像你有Git倉庫裏面的git倉庫。嘗試檢查在該文件夾中是否有名爲'.git'的文件夾,導致問題 – equivalent8

+0

....或git submodule – equivalent8

1

如果唯一的問題是,一些文件已被刪除從索引,但仍然在工作樹,那麼所有你需要做的是:

git reset 

默認情況下,git reset defau LTS爲混合模式,做到這一點:

--mixed
重置索引而不是工作樹(即更改的文件被保留,但不標記爲 提交)和報告什麼也沒有已更新。這是默認操作。

因此,它會讓您的更改保持原樣,但不會使任何事情都沒有停止。如果您發現該文件實際上是缺少,那麼你需要檢查出來,以恢復他們:

git checkout -- path/to/file/or/dir 

你可以使用cutxargs幫助,如果你這樣做解析的git status縮寫形式有很多文件。儘管如此,我仍然將此作爲練習,因爲您聲稱所有文件都在那裏。

0

,如果你刪除了使用

rm file.name 

如果file.name從本地磁盤上的文件已經住進飯桶。然後,你實際上應該發出此命令

git rm file.name 

告訴混帳,你不希望它來跟蹤文件了

相關問題