2012-05-16 45 views
5

Vì vậy, tôi đã thực hiện trên một trang web, một số trong đó đã được kiểm soát phiên bản git (một trong những devs sử dụng nó, người kia không). Vì vậy, tôi sẽ cam kết tất cả mọi thứ cho đến nay, và làm việc từ đó.git add/rm (cam kết)

Tuy nhiên, có một vài tệp có trạng thái git mà tôi không hiểu lắm. Chúng được gắn nhãn là:

# Changed but not updated: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 

Vì vậy, nếu tôi chỉ chạy lệnh git commit, các thay đổi được thực hiện cho các tệp này có hoạt động theo cách của chúng trong kho lưu trữ không? Nó chỉ là tôi không nhận được lý do tại sao bạn sẽ làm thêm/rm- có vẻ như thêm và sau đó loại bỏ tất cả trong một swoop hôi.

Cảm ơn sự giúp đỡ của bạn!

+0

bản sao có thể có của [Git: file "đã thay đổi nhưng không được cập nhật"] (http://stackoverflow.com/questions/4812096/git-file-changed-but-not-updated) – Perception

+0

Mẹo không có nghĩa là bạn cả hai nên thêm và rm chúng. Nó nói rằng đó là hai lệnh mà có thể làm những gì bạn muốn. (Ngoài ra tôi nghĩ rằng bạn đã có một phiên bản cũ của Git - trong các phiên bản mới hơn, nó sẽ nói "Thay đổi được cam kết" hoặc "Thay đổi không dàn dựng cho cam kết", và rm không phải là một phần của các gợi ý.) – Cascabel

+0

Ngoài nâng cấp Git, với các loại câu hỏi bạn đang hỏi, bạn có thể muốn đọc qua một số tài liệu khác, ví dụ [Pro Git] (http://git-scm.com/book). – Cascabel

Trả lời

1

Các tệp này được dàn dựng nhưng không được cam kết. Có, nếu bạn chỉ cần chạy git commit, họ sẽ được cam kết. Thêm vào vấn đề này, bạn có muốn cam kết các tệp này không? Họ có thể hoặc có thể không giống như các tệp của bạn. http://gitready.com/beginner/2009/01/18/the-staging-area.html là phần giới thiệu gốc của khu vực dàn dựng.

+0

Cảm ơn, vì vậy những gì git đã sẵn sàng để cam kết (có khả năng) khác với những gì có trong bản sao làm việc? – penguin

+0

Có. Khu vực dàn dựng là "những gì tôi sắp cam kết". Điều này cho phép bạn chỉ cam kết các phần của các tập tin thay đổi, để xác minh cam kết của bạn là bạn muốn, vv Mặc dù nó là một trong những khái niệm "không có thìa" trong git, nó cũng là một trong những cái mạnh hơn. – robrich

+0

Tuyệt. Vậy có cách nào khác biệt giữa khu vực dàn dựng và bản sao làm việc không? – penguin

4

Thông thường, nếu bạn muốn để có những điều như họ đang có trong thư mục làm việc bạn sẽ

git add -A 

đó sẽ sân khấu tất cả thay đổi bao gồm các hành động xóa một tập tin và các tập tin theo dõi mà không được theo dõi được nêu ra. Bạn cần phải xem lại tập tin .gitignore trước khi thực hiện điều này để bạn không phạm những hiện vật không mong muốn có thể làm sưng kho của bạn và gây ô nhiễm đầu ra của các bản vá và bản vá lỗi.

Một khi bạn đã làm điều này bạn có thể

git commit 

để ghi lại những thay đổi trong lịch sử. Sau đó, bạn có thể

git push origin your_branch_name 

để chia sẻ lịch sử mới này với điều khiển từ xa mà bạn thiết lập.