Как да коригирам грешка в Git: Първо трябва да разрешите текущия си индекс

Грешката „ Първо трябва да разрешите текущия си индекс “ се появява в Git и означава, че има конфликт на сливане и освен ако не разрешите конфликта, няма да имате право да платите в друг клон. Това съобщение за грешка също означава, че обединяването е неуспешно или има конфликти с файловете.

Грешка: Първо трябва да разрешите текущия си индекс в контрола на източника на Git

Какви са всички тези файлове, сливания и конфликти? Тези условия ще ви бъдат неизвестни, ако сте начинаещ в използването на Git. Git е платформа за контрол на версиите, която позволява на няколко души да работят едновременно върху файлове и да изтласкват локалното си копие на кода към това, съхранявано в облака. По този начин, ако промените някой изтеглен (или вече е изпратен) код и го прехвърлите отново в облака, промените ще бъдат заменени в облака от вашето локално копие.

Git има концепция за клонове. Има главен клон и няколко други клона се разклоняват от него. Тази грешка възниква особено, ако превключвате от един клон на друг (с помощта на плащане) и има конфликти във файловете на текущия клон. Ако те не бъдат разрешени, няма да можете да превключвате клонове.

Какво причинява грешката Git: Първо трябва да разрешите текущия си индекс?

Както споменахме по-горе, причините за тази грешка са доста ограничени. Ще изпитате тази грешка, защото:

  • А сливането се провали и трябва да се обърне внимание на конфликта се сливат, преди да преминат с други задачи.
  • Има конфликти във файловете в текущата си (или да се насочват клон) и поради тези конфликти, няма да бъде в състояние да се провери на клон или тласък код.

Преди да продължите с решението, уверете се, че имате подходящ контрол на версиите и е разумно да спрете останалите членове на екипа да променят кода, преди да разрешите конфликта.

Решение 1: Разрешаване на конфликта на сливане

Ако вашето сливане не бъде разрешено автоматично от Git, то оставя индекса и работното дърво в специално състояние, което ви помага да получите цялата информация, необходима ви за разрешаване на сливането. Файловете, които имат конфликти, ще бъдат маркирани специално в индекса и докато не разрешите проблема и не актуализирате индекса, ще продължите да получавате това съобщение за грешка.

  1. Разрешете всички конфликти . Проверете файловете, които имат конфликти, тъй като те ще бъдат маркирани от индекса, и направете съответните промени в тях.
  2. След като разрешите всички съществуващи конфликти, добавете файла и след това фиксирайте .

Пример за това е:

$ git добавяне на файл.txt $ git ангажиране

Можете да добавите ваши лични коментари, докато се ангажирате. Пример за това е:

$ git commit –m “Това е хранилището на Appuals Git”
  1. След като разрешите конфликта, опитайте да проверите съществуващия си клон и да видите дали проблемът е отстранен.

Решение 2: Възстановяване на вашето сливане

Има многобройни случаи, когато обединявате клонове и обърквате. Поради всички конфликти и обърквания проектът вече е объркан и членовете на вашия екип ви обвиняват за това. В този случай трябва да върнете предишния фиксиране (ангажимент за сливане) . Това ще отмени изцяло сливането и ще върне целия проект в състояние, когато не сте извършили обединения. Това може да бъде спасител, ако сте объркали нещата, които не са поправени.

За да върнете сливането , въведете следното:

$ git нулиране - сливане

Горната команда ще нулира индекса и ще актуализира файловете в работното дърво, които са различни между 'commit' и 'head'. Той обаче ще запази тези файлове, които са различни между индекса и работното дърво.

Можете също да опитате да върнете HEAD, като използвате следната команда:

$ git revert HEAD

Ако искате да посочите точното коммиране на сливане, което искате да върнете, можете да използвате същата команда за връщане, но да посочите допълнителни параметри. Ще бъде използван хеш SHA1 на ангажимента за сливане. -M, последвано от 1, показва, че искаме да запазим родителската страна на сливането (клонът, в който се сливаме). Резултатът от това връщане е, че Git ще създаде нов ангажимент, който връща промените от сливането.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>