Как исправить ошибку Git: сначала необходимо разрешить текущий индекс

Ошибка « Сначала вам необходимо разрешить текущий индекс » возникает в Git и означает, что существует конфликт слияния, и, если вы не разрешите конфликт, вам не будет разрешено оформить заказ в другую ветку. Это сообщение об ошибке также означает, что слияние не удалось или есть конфликты с файлами.

Ошибка: сначала необходимо разрешить текущий индекс в системе управления версиями Git.

Что это за файлы, слияния и конфликты? Эти термины будут вам неизвестны, если вы новичок в использовании Git. Git - это платформа управления версиями, которая позволяет нескольким людям одновременно работать с файлами и переносить свою локальную копию кода в ту, которая хранится в облаке. Таким образом, если вы измените какой-то загруженный (или уже отправленный) код и снова отправите его в облако, изменения будут перезаписаны в облаке вашей локальной копией.

В Git есть концепция ветвей. Есть главная ветка, и от нее отходят еще несколько веток. Эта ошибка особенно возникает, если вы переключаетесь с одной ветки на другую (используя checkout), и в файлах текущей ветки возникают конфликты. Если они не разрешены, вы не сможете переключать ветки.

Что вызывает ошибку Git: сначала вам нужно разрешить текущий индекс?

Как упоминалось ранее, причины этой ошибки весьма ограничены. Вы столкнетесь с этой ошибкой, потому что:

  • Слияние не удалось , и вы должны решить слияния конфликта , прежде чем перейти к другим задачам.
  • Есть конфликты в файлах в вашей текущей (или целевой ветке), и из-за этих конфликтов вы не сможете выполнить извлечение из ветки или отправить код.

Прежде чем приступить к решению, убедитесь, что у вас есть надлежащий контроль версий, и было бы разумно запретить другим членам команды изменять код, прежде чем вы разрешите конфликт.

Решение 1. Разрешение конфликта слияния

Если ваше слияние не разрешается автоматически Git, он оставляет индекс и рабочее дерево в особом состоянии, которое помогает предоставить вам всю информацию, необходимую для разрешения слияния. Файлы с конфликтами будут отмечены в индексе особым образом, и пока вы не решите проблему и не обновите индекс, вы будете получать это сообщение об ошибке.

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

Пример:

$ git add file.txt $ git commit

Вы можете добавить свой личный комментарий во время фиксации. Пример:

$ git commit –m «Это репозиторий Appuals Git»
  1. После того как вы разрешили конфликт, попробуйте выйти из существующей ветки и посмотреть, устранена ли проблема.

Решение 2. Отмена слияния

Есть множество случаев, когда вы объединяете ветки и делаете беспорядок. Из-за всех конфликтов и неразберихи проект превратился в беспорядок, и члены вашей команды обвиняют вас в этом. В этом случае вам нужно отменить предыдущую фиксацию (фиксацию слияния) . Это полностью отменит слияние и вернет весь проект в состояние, когда вы не выполняли никаких слияний. Это может быть вам палочкой-выручалочкой, если вы сделали что-то не подлежащее ремонту.

Чтобы отменить слияние , введите следующее:

$ git reset -–merge

Вышеупомянутая команда сбросит индекс и обновит файлы в рабочем дереве, которые отличаются между фиксацией и заголовком. Однако он сохранит те файлы, которые различаются между индексным и рабочим деревом.

Вы также можете попробовать вернуть HEAD , используя следующую команду:

$ git revert HEAD

Если вы хотите указать точную фиксацию слияния, которую вы хотите отменить, вы можете использовать ту же команду revert, но указать дополнительные параметры. Будет использован хеш SHA1 коммита слияния. -M, за которым следует 1, указывает, что мы хотим сохранить родительскую часть слияния (ветвь, в которую мы сливаемся). Результатом этого отката является то, что Git создаст новую фиксацию, которая откатит изменения от слияния.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>