Cách sửa 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

Lỗi “ Bạn cần giải quyết chỉ mục hiện tại của mình trước ” 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 nhánh khác. Thông báo lỗi này cũng cho biết rằng hợp nhất không thành công hoặc có xung đột với các tệp.

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 trong điều khiển nguồn Git

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 nhiều 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, thì các thay đổi sẽ bị bản sao cục bộ của bạn ghi đè trê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 rẽ ra 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 chi nhánh.

Nguyên nhân 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ì:

  • Một merge thất bại và bạn cần phải giải quyết các cuộc xung đột nhập trước khi chuyển với các nhiệm vụ khá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ã nhánh hoặc mã đẩy.

Trước khi tiến hành giải pháp, hãy đảm bảo rằng bạn có quyền 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 việc 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 vấn đề 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.

  1. 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.
  2. 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 thêm file.txt $ git cam kết

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 “Đây là kho ứng dụng Git”
  1. Sau khi bạn đã giải quyết xong xung đột, hãy thử đăng xuất khỏi chi nhánh hiện tại 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. 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ỳ 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 việc hợp nhất , hãy 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 hoàn nguyên HEAD

Nếu bạn muốn chỉ định chính xác cam kết hợp nhất mà bạn muốn hoàn nguyên, bạn có thể sử dụng cùng một lệnh hoàn nguyên 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 là 1 chỉ ra rằng chúng ta muốn giữ lại phía cha của 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ừ hợp nhất.

$ git hoàn nguyên -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>