2012-04-11 34 views
5

Lần thứ hai ngày hôm nay git commit -m "don't quit me now" xóa toàn bộ repo của tôi. Vì vậy, nó đi:git cam kết xóa tất cả các tệp trong repo

$ 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 
... 

Tôi đã sử dụng Github cho Mac cùng với dòng lệnh và tự hỏi liệu đó có phải là điều gì đó đang làm xáo trộn mọi thứ không.

$ 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

Trạng thái của kho lưu trữ của bạn (như thu được bằng 'trạng thái git') trước khi bạn thực hiện' git add .'? –

+0

là biến môi trường 'GIT_DIR' hoặc' GIT_WORK_TREE' được đặt? – VonC

+0

Ví dụ trước về hành vi như vậy không phải là rất nhiều thông tin: http://stackoverflow.com/questions/6180151/git-commit-without-file-name-and-without-a. Liệu vấn đề tồn tại nếu bạn sao chép repo của bạn, cố gắng thực hiện một sửa đổi ở đó và một cam kết? – VonC

Trả lời

4

Kể từ git status nói với bạn rằng mọi thứ đã được dàn dựng để xóa, trước khi làm bất cứ điều gì khác, đặt lại chỉ mục để HEAD:

git reset HEAD 

Sau khi làm điều này, git status nên tiếng vang

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

Sau đó, thử lại:

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

Cảm ơn, repo đã trở lại bình thường. Tuy nhiên, tôi không thoải mái khi không biết làm thế nào nó lại rơi vào trạng thái điên rồ ngay từ đầu. Tôi là người dùng duy nhất trên repo và chỉ sử dụng các lệnh cơ bản. –

+0

Điều khác về sửa chữa này là nó không diễn ra như mô tả. 'git status' thực sự chỉ ra một loạt các tập tin để xóa cùng với hầu hết các tập tin đang được untracked. 'git add .' đặt chúng trở lại trong repo. Thật thú vị, tôi không nhìn thấy cam kết cuối cùng "thử mới" trong lịch sử. Thứ kỳ lạ. –

+0

Điều này vẫn không hoạt động. Các 'git commit' chỉ xóa repo của tôi một lần nữa. Bây giờ tôi có một loạt các thư mục và tập tin không được theo dõi mà dường như không đáp ứng với 'git add''. –

Các vấn đề liên quan