Ghi đè code khi pull từ github về

 

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:

  1. 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
    
  2. 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
    
  3. 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 applythay vì popnếu bạn chưa sẵn sàng để mất mã đã lưu trữ do xung đột.

Đăng nhận xét

Post a Comment (0)

Mới hơn Cũ hơn