2012-06-02 22 views
22

Tôi đang đấu tranh với Git, tôi dường như không thể thêm tệp của mình. Tôi chạy ls để hiển thị rằng các tệp nằm trong thư mục hiện tại, sau đó chạy git add . rồi git status cho thấy "không có gì để cam kết".git add. -> vẫn "không có gì để cam kết" với các tập tin mới

Jennifer-Myers-Computer:first_app Jenn$ git init 

Reinitialized existing Git repository in /Users/Jenn/rails_projects/first_app/.git/ 

Jennifer-Myers-Computer:first_app Jenn$ ls 

Diary.txt README.rdoc config.ru log tmp 
Gemfile Rakefile db public vendor 
Gemfile.lock app doc script 
README config lib test 

Jennifer-Myers-Computer:first_app Jenn$ git add . 

Jennifer-Myers-Computer:first_app Jenn$ git status 

# On branch master 
nothing to commit (working directory clean) 

Jennifer-Myers-Computer:first_app Jenn$ 
+0

Cố gắng 'git add ./*' để thay thế? –

Trả lời

49

Lệnh của bạn trông chính xác (tôi đã thực hiện chúng nhiều lần theo cách đó).

Trước tiên hãy thử

git add --all 

và sau đó thử git status. Tôi không nghĩ rằng sẽ giải quyết nó, nhưng đáng thử tiếp theo.

Tiếp theo hãy thử xem tệp .gitignore của bạn, nếu bạn có một tệp (ở cấp cao nhất nơi bạn đã thực hiện git init).

cat .gitignore 

Xóa mọi danh sách ở đó làm cho tệp của bạn bị bỏ qua. Ví dụ: có mục nhập chỉ với * không?

Tiếp thử:

git add --force 

và sau đó thử git status.

Nếu không có tác phẩm nào trong số đó hoạt động, tôi nhận thấy rằng đầu ra của bạn từ git init nói "reinitialized" thay vì "khởi tạo", vì vậy có thể đã có sự cố. Nếu bạn vừa mới khởi chạy và không nhớ mất lịch sử, hãy bắt đầu lại bằng cách xóa thư mục .git:

rm -rf .git 

Và sau đó đọc lại các lệnh tương tự ở trên. Nếu điều đó không hiệu quả, một số thông tin khác về thiết lập của bạn sẽ được yêu cầu. Ví dụ: bạn có thể có tệp .gitignore toàn cầu: ~/.gitignore_global cần chỉnh sửa (hoặc bị xóa nếu bạn không muốn).

+0

fanstastic! Cảm ơn! Tôi loại bỏ các thư mục .git, sau đó đã làm git init, git add. – RandyMy

+1

cho tôi git add --all làm việc .. vấn đề là gì. :/ – Hristo

+0

Điều này hiệu quả với tôi. Sự thay đổi duy nhất mà tôi đã làm là 'git add. --force'. – RaulGM

3

Trong trường hợp của tôi, tôi giải quyết nó bằng stashing và ngay lập tức sau đó áp dụng các stash:

git stash 
git stash apply 

chuỗi này sẽ rời khỏi repo chính xác như nó đã được trước đó. Sau đó, làm git add [file] hoạt động chính xác.

(Sử dụng git phiên bản 1.7.12.4 dưới suse linux)

+0

Cảm ơn! Điều này làm việc cho tôi. – Rich

15

Kể từ khi tôi đã trải qua một vấn đề tương tự nhiều lần tôi chỉ muốn nói thêm rằng, bạn nên kiểm tra lại rằng bạn đang cố gắng để add từ và hiện đang nằm trong thư mục gốc của dự án của bạn.

+3

+1 đây là một ý tưởng hay. những người hỏi thường xuyên không có trong thư mục gốc. Điều thú vị là trong trường hợp này, OP không hiển thị 'cd'ing vào thư mục dự án. –

+0

Nguồn gây nhầm lẫn lớn cho những người bắt đầu trong git - hầu hết các lệnh được thực hiện trong ngữ cảnh của thư mục làm việc hiện tại. – gravidThoughts

4

Trong trường hợp ai đó gặp phải vấn đề này, một lý do khác khiến git không thêm thư mục là có thể có một thư mục .git trong thư mục đó.

Trong trường hợp này, git hy vọng bạn coi đó là submodule. Nếu không, chỉ cần xóa .git (trong thư mục, không phải thư mục gốc) và thử lại.

Handy lệnh:

find . -name '.git' -type d 
+1

Chà. bạn huyền thoại. – Mehrad

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