2013-11-09 17 views
30

Có vẻ dễ dàng nhưng tôi không hiểu. Tôi đang ở trong thư mục gốc của đơn xin của tôi.git commit -m so với git commit -am

Đây là quy trình làm việc của tôi.

git add . 
git commit -m "added a new feature some files changed" 
git push heroku master 

Điều này thường hoạt động. Tất cả thay đổi của tôi đều bị đẩy.

Nhưng đôi khi tôi có một tập tin mà tôi thay đổi nhưng khi tôi đẩy để Heroku những thay đổi không có cho RẰNG MỘT FILE ... nhưng đối với hầu hết các tập tin những thay đổi đang có ...

Nhưng nếu tôi

git add . 
git commit -am "added a new feature some files changed" 
git push heroku master 

Tất cả mọi thứ (tất cả thay đổi) được đẩy lên Heroku

+0

Bạn có thể đưa ra các ví dụ về tệp nào không bị bắt không? Đây có phải là tệp bạn đã xóa không? Đôi khi bạn cần phải làm 'git add. - update' để bắt những người đó. – helion3

+0

@BotskoNet - Tệp này là tệp CSS trong ứng dụng Rails của tôi. Vì một số lý do khi tôi chỉnh sửa tệp đó, các thay đổi không được đẩy vào Heroku. Điều này đã xảy ra trước đây và tôi không hiểu tại sao. – slindsey3000

+0

Có lẽ điều này sẽ giúp bạn. [Khác nhau giữa những người] [1] [1]: http://stackoverflow.com/a/15419846/3962576 – Reven

Trả lời

33

Từ the docs:

git commit -a tự động hiển thị tất cả các tệp được theo dõi, sửa đổi trước khi cam kết Nếu bạn cho rằng git add stage của luồng công việc là quá cồng kềnh, Git cho phép bạn bỏ qua phần đó bằng tùy chọn -a. Điều này về cơ bản nói với Git để chạy git thêm vào bất kỳ tập tin đó là "theo dõi" - đó là, bất kỳ tập tin đó là trong cam kết cuối cùng của bạn và đã được sửa đổi. Điều này cho phép bạn thực hiện quy trình làm việc theo phong cách Subversion hơn nếu bạn muốn, chỉ cần chỉnh sửa tệp và sau đó chạy git commit -a khi bạn muốn chụp nhanh mọi thứ đã bị thay đổi. Tuy nhiên, bạn vẫn cần phải chạy git add để bắt đầu theo dõi các tệp mới, giống như Subversion.

Sử dụng tùy chọn -am cho phép bạn thêm và tạo thông báo cho cam kết trong một lệnh.

+0

Vậy tại sao 'git commit -am "x" 'công việc ... nhưng. ... 'git add .'' git commit -m "x" 'không hoạt động? – slindsey3000

+8

Vì một số tệp của bạn không được tổ chức. Điều này xảy ra với các tệp đã xóa/đã thêm hiện không được theo dõi. Thông thường, bạn phải thực hiện một 'git add -u' để tạo các tập tin" untracked ". '-am' cũng sẽ làm điều này cho bạn. –

+1

@ slindsey3000 bạn có thể tìm kiếm git add -A giống như git add --all, khác với git add. –

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