2016-05-17 15 views
7

Tôi đang học git, nhưng tôi bị nhầm lẫn bởi các cách dàn dựng và cam kết khác nhau. Để quấn quanh đầu tôi, tôi đang sử dụng một phép ẩn dụ của các thư mục: thư mục làm việc, thư mục dàn dựng, thư mục commit.Khi nào tôi nên sử dụng rm, git rm, git rm --cached, git add

  • Nếu tôi rm một tập tin từ thư mục làm việc của tôi, nó chỉ loại bỏ nó chỉ từ thư mục làm việc của tôi. Điều đó đúng không?
  • Nếu tôi git rm một tệp từ thư mục làm việc của tôi, nó sẽ xóa nó khỏi tất cả ba thư mục. Chính xác?
  • Nếu tôi git rm --cached một tệp, nó sẽ xóa tệp khỏi phân đoạn và cam kết thư mục của tôi, nhưng để nó trong thư mục làm việc của tôi?
  • Nếu tôi đã cập nhật, thêm và xóa các tệp từ thư mục làm việc và làm git add ., sau đó git status hiển thị các tệp được dàn dựng có được thêm, xóa và cập nhật. Điều gì xảy ra khi tôi cam kết? Có phải các tệp đã xóa bị xóa khỏi thư mục Commit không? Nếu tôi quay lại cam kết sau này, liệu những tệp đã xóa đó có xuất hiện trở lại không?

Bất kỳ trợ giúp nào để hiểu rõ hơn các khái niệm này sẽ được đánh giá cao!

Trả lời

17

Tinh chỉnh sự hiểu biết của bạn về khu vực dàn dựng (còn được gọi là chỉ mục hoặc bộ nhớ cache) và tùy chọn --cached. Các documentation for git rm bang

--cached 

Sử dụng tùy chọn này để unstage và loại bỏ những con đường duy nhất của thị trường. Các tệp cây đang hoạt động, dù được sửa đổi hay không, sẽ bị bỏ lại một mình.

Chạy xuống danh sách của bạn cho

  • rm file - loại bỏ tập tin từ thư mục làm việc chỉ
  • git rm - loại bỏ tập tin từ thư mục công việc và từ khu vực dàn dựng, nhưng chưa được một phần của lịch sử (kho, “thư mục cam kết”)
  • git rm --cached - xóa khỏi khu vực dàn dựng nhưng không phải thư mục công việc cũng như lịch sử
  • git add . với sự hiện diện của các sửa đổi, tệp mới và các tệp đã xóa - git sẽ ghi lại các sửa đổi và các tệp chưa được hủy mới trong bộ nhớ cache. (git add sẽ hành xử khác nhau với các tùy chọn nhất định.)

Các --cached tùy chọn để lệnh git khác nhau làm cho chúng hoạt động trên các chỉ số hoặc ít nhất là đối với các chỉ số với.

git addgit rm thay đổi từ thư mục công việc sang chỉ mục hoặc bộ nhớ cache. Hãy suy nghĩ về các lệnh này như xây dựng cam kết tiếp theo của bạn một mảnh tại một thời điểm.

Sau khi bạn hài lòng với những gì có trong chỉ mục, hãy chuyển các thay đổi từ chỉ mục sang kho lưu trữ với git commit.

Hầu hết thời gian, những gì bạn muốn là chuỗi đơn giản git rm file tiếp theo git commit để ngừng theo dõi tập tin ở điểm hiện tại trong lịch sử của mình.

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