Cách khắc phục lỗi Git 'Các thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất'

Thông báo lỗi Các thay đổi cục bộ của bạn đối với các tệp sau sẽ được ghi đè bằng cách hợp nhất, xảy ra trong cơ chế kiểm soát phiên bản Git. Lỗi này xảy ra nếu bạn đã sửa đổi một tệp cũng có sửa đổi trong kho lưu trữ từ xa.

Lỗi Git: Các thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất

Thông báo lỗi này được tránh NẾU không có tệp không được cam kết cũng có sửa đổi trong kho lưu trữ từ xa. Khi trải nghiệm thông báo này, tốt nhất là tham khảo ý kiến ​​của các thành viên khác trong nhóm của bạn và hỏi ý kiến ​​của họ. Cho dù bạn muốn hợp nhất các thay đổi cục bộ của mình hoặc giữ phiên bản hiện diện trong kho lưu trữ, tốt nhất là giữ tất cả mọi người trên tàu.

Kho lưu trữ là gì? Đẩy và kéo trong Git là gì?

Kho lưu trữ là một loại lưu trữ mã được liên tục sửa đổi và thu được bởi các thành viên trong nhóm thông qua cơ chế kiểm soát phiên bản GitHub. ' Kéo' có nghĩa là bạn đang kéo phiên bản mới nhất của kho lưu trữ lên bộ lưu trữ cục bộ / IDE (Môi trường phát triển tích hợp) như Pycharm, v.v.

Sau khi kéo, bạn thay đổi mã hoặc thêm các tính năng khác. Khi bạn đã hoàn tất, bạn ' Đẩy' mã vào kho lưu trữ để thay đổi được lưu và bổ sung được thực hiện. Mã cũng có thể truy cập được cho người khác.

Nếu bạn chưa quen với điều khiển phiên bản Github, bạn nên trải qua tất cả các điều cơ bản trước. Trong bài viết này, chúng tôi giả định rằng bạn đã có kiến ​​thức cơ bản và biết tất cả mọi thứ.

Làm cách nào để sửa 'Thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất'?

Độ phân giải của thông báo lỗi này phụ thuộc vào những gì bạn muốn làm. Bạn có thể loại bỏ các thay đổi cục bộ của mình và kéo các thay đổi trong kho lưu trữ hoặc bạn có thể lưu các thay đổi cục bộ của mình vào ngăn chứa và kéo phiên bản khỏi kho lưu trữ. Tất cả phụ thuộc vào sở thích của bạn.

Do đó, chúng tôi khuyên bạn nên tham khảo ý kiến ​​của các thành viên trong nhóm và đảm bảo rằng tất cả các bạn đều ở trên cùng một trang trước khi chuyển tiếp. Nếu bạn cam kết sai hoặc đẩy phiên bản sai, nó có thể ảnh hưởng đến toàn đội.

Phương pháp 1: Buộc kéo để ghi đè thay đổi cục bộ

Nếu bạn không quan tâm đến những thay đổi được thực hiện cục bộ và muốn lấy mã từ kho lưu trữ, bạn có thể buộc kéo. Điều này sẽ ghi đè lên tất cả các thay đổi cục bộ được thực hiện trên máy tính của bạn, một bản sao trùng lặp của phiên bản trong kho lưu trữ sẽ xuất hiện.

Thực hiện các lệnh sau trong IDE của bạn:

 git reset - kéo git cứng 

Điều này sẽ ngay lập tức phá hủy tất cả các thay đổi cục bộ của bạn, vì vậy hãy chắc chắn rằng bạn biết những gì bạn đang làm và không cần những thay đổi cục bộ của bạn.

Phương pháp 2: Giữ cả hai thay đổi (cục bộ và từ repo)

Nếu bạn muốn giữ cả hai thay đổi (thay đổi được thực hiện cục bộ và thay đổi có trong kho lưu trữ), bạn có thể thêm và cam kết thay đổi của mình. Khi bạn kéo, rõ ràng sẽ có xung đột hợp nhất. Tại đây, bạn có thể sử dụng các công cụ trong IDE của mình (chẳng hạn như Difftool và mergetool) để so sánh hai đoạn mã và xác định những thay đổi nào cần giữ và loại bỏ. Đây là cách giữa; không có thay đổi sẽ bị mất cho đến khi bạn loại bỏ chúng bằng tay.

 git thêm $ the_file_under_error git cam kết kéo git 

Khi bạn nhận được xung đột hợp nhất, hãy bật các công cụ giải quyết xung đột đó và kiểm tra từng dòng một.

Phương pháp 3: Giữ cả hai thay đổi NHƯNG không cam kết

Tình huống này xảy ra theo thời gian mà các nhà phát triển chưa sẵn sàng để cam kết vì có một số mã bị hỏng một phần mà bạn đang gỡ lỗi. Tại đây, chúng ta có thể lưu các thay đổi một cách an toàn, kéo phiên bản từ kho lưu trữ và sau đó hủy mã của bạn.

 git stash lưu --keep-index 

hoặc là

 git stash 
 git kéo git stash pop 

Nếu có một số xung đột sau khi bạn bật stash, bạn nên giải quyết chúng theo cách thông thường. Bạn cũng có thể sử dụng lệnh:

 git stash áp dụng 

thay vì bật nếu bạn chưa sẵn sàng để mất mã được lưu trữ do xung đột.

Nếu hợp nhất dường như không phải là một lựa chọn khả thi cho bạn, hãy xem xét thực hiện rebase. Rebasing là quá trình di chuyển hoặc kết hợp một chuỗi các cam kết với một cam kết cơ sở mới. Trong trường hợp nổi loạn, thay đổi mã thành:

 git stash git pull --rebase origin master git stash pop 

Phương pháp 4: Thay đổi các phần 'cụ thể' trong mã của bạn

Nếu bạn muốn thay đổi các phần cụ thể của mã và không muốn thay thế mọi thứ, bạn có thể cam kết mọi thứ bạn không muốn ghi đè và sau đó làm theo phương pháp 3. Bạn có thể sử dụng lệnh sau cho các thay đổi mà bạn muốn ghi đè từ phiên bản có trong kho lưu trữ:

 đường dẫn kiểm tra git / đến / tập tin / đến / hoàn nguyên 

hoặc là

 kiểm tra git CHÍNH ^ đường dẫn / đến / tập tin / đến / hoàn nguyên 

Ngoài ra, bạn cần đảm bảo rằng tệp không được dàn dựng thông qua:

 git đặt lại đường dẫn CHÍNH / đến / tệp / thành / hoàn nguyên 

Sau đó tiến hành lệnh kéo:

 kéo git 

Điều này sau đó sẽ cố gắng tìm nạp phiên bản từ kho lưu trữ.

Bài ViếT Thú Vị