Quy tắc nào sẽ tạo ra cảnh báo "sẽ bị ghi đè"?
Nếu bạn đã sửa đổi một tệp cũng có sửa đổi trong kho lưu trữ từ xa nhưng chưa cam kết.
Quy tắc nào sẽ tránh được cảnh báo "sẽ bị ghi đè"?
Nếu không có tệp nào chưa được cam kết cũng có sửa đổi trong repo từ xa.
Tôi cần phải làm gì...
Nó phụ thuộc vào những gì bạn thực sự muốn:
Bạn muốn thực hiện thao tác kéo để ghi đè lên tệp
Rõ ràng, nếu bạn thực sự muốn điều này, bạn không quan tâm đến những thay đổi bạn vừa thực hiện và không ngại xóa chúng. Nếu vậy bạn chỉ cần làm:
git reset --hard git pull
Bạn muốn cả những thay đổi của mình và những thay đổi từ việc kéo
Theo tôi, cách dễ nhất để xử lý vấn đề này là thực hiện các thay đổi của bạn sau đó thực hiện kéo. Sau đó, nếu có xung đột hợp nhất, hãy sử dụng các cơ chế thông thường để giải quyết hợp nhất (gợi ý: định cấu hình difftool và mergetool của bạn để bạn có thể dễ dàng giải quyết xung đột bằng công cụ GUI như meld hoặc diffmerge, v.v.). Cứ làm đi:
git add $the_affected_file git commit git pull
Bạn muốn cả hai thay đổi nhưng bạn chưa sẵn sàng cam kết
Cá nhân tôi không nghĩ rằng bạn nên không sẵn sàng để cam kết. Nhưng thỉnh thoảng bạn có một phần mã bị hỏng mà bạn đang gỡ lỗi và bạn thực sự không muốn thực hiện. Trong trường hợp này, bạn có thể lưu trữ các thay đổi của mình tạm thời sau đó bỏ dấu vết sau khi kéo:
git stash git pull git stash pop
Nếu có xung đột sau khi bật kho lưu trữ, hãy giải quyết chúng theo cách thông thường. Lưu ý: bạn có thể muốn thực hiện
git stash apply
thay vìpop
nếu bạn chưa sẵn sàng để mất mã đã lưu trữ do xung đột.
Đăng nhận xét