2012-04-11 91 views
5

今天第二次git commit -m "don't quit me now"刪除了我的整個回購。所以它:git commit刪除回購中的所有文件

$ git add . 
$ git commit -m "please, be gentle" 

[master 7af0e9c] please, be gentle 
140 files changed, 0 insertions(+), 3186 deletions(-) 
delete mode 100644 .DS_Store 
delete mode 100644 .gitignore 
delete mode 100644 .rspec 
delete mode 100644 Gemfile 
... 

我一直在使用Github的Mac旁邊的命令行,並想知道如果這是某種程度上讓事情。

$ git checkout 
$ git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 1 commit. 
# 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# deleted: .DS_Store 
# deleted: .gitignore 
# deleted: .rspec 
# deleted: Gemfile 
# deleted: Gemfile.lock 
+1

在執行'git add .'之前,您的存儲庫的狀態(通過'git status'獲得)是什麼? – 2012-04-11 05:29:22

+0

是你的環境變量'GIT_DIR'或'GIT_WORK_TREE'集合? – VonC 2012-04-11 05:38:45

+0

以前的這種行爲的實例並不是非常豐富:http://stackoverflow.com/questions/6180151/git-commit-without-file-name-and-without-a。如果你克隆你的repo,那麼問題是否會持續存在,並嘗試在那裏進行修改和提交? – VonC 2012-04-11 05:39:49

回答

4

由於git status告訴你一切都會上演刪除,在做任何事情之前,指數恢復到HEAD

git reset HEAD 

這樣做了以後,git status應該呼應

no changes added to commit (use "git add" and/or "git commit -a") 

然後,再試一次:

git add . 
git commit -m "new try" 
+0

謝謝,回購很正常。然而,我不知道它是如何進入瘋狂狀態的,因此我感到不舒服。我是回購的唯一用戶,只是使用基本命令。 – 2012-04-11 15:45:03

+0

有關此修復程序的其他內容是它沒有像描述的那樣完成。 'git status'實際上顯示了一大堆文件需要刪除,而其中大部分文件未被跟蹤。 'git add .'把它們放回回購。有趣的是,我沒有看到歷史上最後一次承諾「新嘗試」。奇怪的東西。 – 2012-04-11 15:51:01

+0

這仍然無法正常工作。 'git commit'只是清除了我的repo。現在我有一堆未跟蹤的文件夾和文件似乎沒有響應'git add .'。 – 2012-04-12 03:35:42