Lỗi “ Trước tiên, bạn cần giải quyết chỉ mục hiện tại của mình ”Xảy ra trong Git và có nghĩa là có xung đột hợp nhất và trừ khi bạn giải quyết xung đột, bạn sẽ không được phép chuyển sang chi nhánh khác. Thông báo lỗi này cũng cho biết rằng quá trình hợp nhất không thành công hoặc có xung đột với các tệp.
Tất cả các tệp, hợp nhất và xung đột này là gì? Bạn sẽ không biết những thuật ngữ này nếu bạn là người mới bắt đầu sử dụng Git. Git là một nền tảng kiểm soát phiên bản cho phép một số người làm việc trên các tệp đồng thời và đẩy bản sao mã cục bộ của họ lên bản sao mã được lưu trữ trên đám mây. Bằng cách này nếu bạn thay đổi một số mã đã tải xuống (hoặc đã được đẩy) và đẩy lại lên đám mây, các thay đổi sẽ bị bản sao cục bộ của bạn ghi đè lên đám mây.
Git có một khái niệm về các nhánh. Có một nhánh chính và một số nhánh khác phân nhánh từ nó. Lỗi này đặc biệt xảy ra nếu bạn đang chuyển từ chi nhánh này sang chi nhánh khác (sử dụng thanh toán) và có xung đột trong các tệp của chi nhánh hiện tại. Nếu chúng không được giải quyết, bạn sẽ không thể chuyển đổi chi nhánh.
Nguyên nhân nào gây ra Lỗi Git:Trước tiên, bạn cần giải quyết chỉ mục hiện tại của mình?
Giống như đã đề cập trước đây, nguyên nhân gây ra lỗi này khá hạn chế. Bạn sẽ gặp lỗi này vì:
- Hợp nhất không thành công và bạn cần giải quyết xung đột hợp nhất trước khi chuyển sang các nhiệm vụ khác.
- Có xung đột trong các tệp tại chi nhánh hiện tại (hoặc chi nhánh được nhắm mục tiêu) của bạn và do những xung đột này, bạn sẽ không thể kiểm tra mã chi nhánh hoặc mã đẩy.
Trước khi bạn tiếp tục giải pháp, hãy đảm bảo rằng bạn có kiểm soát phiên bản phù hợp và điều khôn ngoan là ngăn các thành viên khác trong nhóm thay đổi mã trước khi bạn giải quyết xung đột.
Giải pháp 1:Giải quyết Xung đột Hợp nhất
Nếu quá trình hợp nhất của bạn không được Git giải quyết tự động, nó sẽ để chỉ mục và cây làm việc ở trạng thái đặc biệt giúp cung cấp cho bạn tất cả thông tin bạn cần để giải quyết việc hợp nhất. Các tệp có xung đột sẽ được đánh dấu đặc biệt trong chỉ mục và cho đến khi bạn giải quyết sự cố và cập nhật chỉ mục, bạn sẽ tiếp tục nhận được thông báo lỗi này.
- Giải quyết tất cả các xung đột . Kiểm tra các tệp có xung đột vì chúng sẽ được chỉ mục đánh dấu và thực hiện các thay đổi cho phù hợp.
- Sau khi bạn đã giải quyết tất cả các xung đột hiện có, hãy thêm tệp và sau đó cam kết .
Một ví dụ là:
$ git add file.txt $ git commit
Bạn có thể thêm bình luận cá nhân của mình trong khi cam kết. Một ví dụ là:
$ git commit –m “This is Appuals Git repository”
- Sau khi bạn đã giải quyết xong xung đột, hãy thử kiểm tra chi nhánh hiện có của bạn và xem sự cố đã được khắc phục chưa.
Giải pháp 2:Hoàn nguyên Hợp nhất của bạn
Có rất nhiều trường hợp bạn hợp nhất các nhánh và lộn xộn. Bởi vì tất cả những xung đột và nhầm lẫn, dự án bây giờ là một mớ hỗn độn và các thành viên trong nhóm của bạn đang đổ lỗi cho bạn về điều đó. Trong trường hợp này, bạn phải hoàn nguyên cam kết trước đó (cam kết hợp nhất) . Thao tác này sẽ hoàn tác quá trình hợp nhất hoàn toàn và đưa toàn bộ dự án trở lại trạng thái khi bạn không thực hiện bất kỳ hoạt động hợp nhất nào. Đây có thể là một cứu cánh nếu bạn để mọi thứ lộn xộn không thể sửa chữa.
Để hoàn nguyên quá trình hợp nhất , nhập như sau:
$ git reset -–merge
Lệnh trên sẽ đặt lại chỉ mục và cập nhật các tệp trong cây làm việc khác nhau giữa ‘cam kết’ và ‘đầu’. Tuy nhiên, nó sẽ giữ những tệp khác nhau giữa chỉ mục và cây làm việc.
Bạn cũng có thể thử hoàn nguyên HEAD bằng cách sử dụng lệnh sau:
$ git revert HEAD
Nếu bạn muốn chỉ định cam kết hợp nhất chính xác mà bạn muốn hoàn nguyên, bạn có thể sử dụng lệnh hoàn nguyên tương tự nhưng chỉ định các tham số bổ sung. Hàm băm SHA1 của cam kết hợp nhất sẽ được sử dụng. -M theo sau bởi 1 chỉ ra rằng chúng ta muốn giữ lại phía cha của phép hợp nhất (nhánh mà chúng ta đang hợp nhất vào). Kết quả của việc hoàn nguyên này là Git sẽ tạo một cam kết mới để khôi phục các thay đổi từ quá trình hợp nhất.
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>