Rất nhiều người khuyên bạn nên sử dụng git update-index --assume-unchanged
. Thật vậy, đây có thể là một giải pháp tốt, nhưng chỉ trong ngắn hạn.
Những gì bạn có thể muốn làm là đây : git update-index --skip-worktree
.
(Tùy chọn thứ ba mà bạn có thể không muốn là : git rm --cached
. Nó sẽ giữ tệp cục bộ của bạn, nhưng sẽ được đánh dấu là đã xóa khỏi kho lưu trữ từ xa.)
Sự khác biệt giữa hai lựa chọn đầu tiên?
assume-unchanged
là tạm thời cho phép bạn ẩn các sửa đổi từ một tệp. Nếu bạn muốn ẩn các sửa đổi được thực hiện đối với một tệp, sửa đổi tệp, sau đó kiểm tra một nhánh khác, bạn sẽ phải sử dụng no-assume-unchanged
sau đó có thể bỏ qua các sửa đổi.
skip-worktree
sẽ theo bạn bất cứ chi nhánh nào bạn thanh toán, với các sửa đổi của bạn!
Trường hợp sử dụng của assume-unchanged
Nó giả định rằng tập tin này không nên được sửa đổi và cung cấp cho bạn một đầu ra sạch hơn khi thực hiện git status
. Nhưng khi kiểm tra đến một chi nhánh khác, bạn cần đặt lại cờ và cam kết hoặc bỏ qua các thay đổi trước đó. Nếu bạn kéo tùy chọn này được kích hoạt, bạn sẽ cần giải quyết xung đột và git sẽ không tự động hợp nhất. Nó thực sự chỉ ẩn các sửa đổi (git status
sẽ không hiển thị cho bạn các tệp được gắn cờ).
Tôi thích sử dụng nó khi tôi chỉ muốn dừng theo dõi các thay đổi trong một thời gian + cam kết một loạt các tệp ( git commit -a
) liên quan đến cùng một sửa đổi.
Trường hợp sử dụng của skip-worktree
Bạn có một lớp thiết lập chứa các tham số (ví dụ: bao gồm cả mật khẩu) mà bạn bè của bạn phải thay đổi tương ứng với thiết lập của họ.
- 1: Tạo phiên bản đầu tiên của lớp này, điền vào các trường bạn có thể điền và để trống / rỗng.
- 2: Cam kết và đẩy nó đến máy chủ từ xa.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Cập nhật lớp cấu hình của bạn với các tham số của riêng bạn.
- 5: Quay trở lại để làm việc trên một chức năng khác.
Những sửa đổi bạn làm sẽ theo bạn bất cứ chi nhánh nào. Cảnh báo: nếu bạn bè của bạn cũng muốn sửa đổi lớp này, họ phải có cùng thiết lập, nếu không các sửa đổi của họ sẽ được đẩy sang kho lưu trữ từ xa. Khi kéo, phiên bản từ xa của tệp sẽ ghi đè lên tệp của bạn.
Tái bút: làm cái này hay cái khác, nhưng không phải cả hai vì bạn sẽ có tác dụng phụ không mong muốn. Nếu bạn muốn thử một lá cờ khác, bạn nên vô hiệu hóa cái sau trước.
.csproj
tệp, đây là một phần rất quan trọng của bất kỳ dự án nào. Thay đổi đối với.csproj.user
tập tin hoặc bất kỳ.Publish.XML
tập tin tôi hoàn toàn có thể hiểu được không theo dõi, nhưng tôi tò mò là tại sao bạn sẽ không muốn theo dõi.csproj
...