Переключена ветка без фиксации изменений, «ошибка: не удалось записать индекс. FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: необходимо объединить'

Я вношу правки в ветку, пока мой партнер работает над основной. Я переключил ветку, чтобы проверить их последнюю отправку, но не зафиксировал изменения до перехода на основную ветку. Я не знал, что это мне все испортит, когда я вернусь к себе. Теперь я застрял на этом:

Страница на GitHub:

Переключена ветка без фиксации изменений, «ошибка: не удалось записать индекс. FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: необходимо объединить'

Когда я нажимаю восстановить:

Переключена ветка без фиксации изменений, «ошибка: не удалось записать индекс. FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: необходимо объединить'

ошибка: Не удалось записать индекс
FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: требуется слияние
FullHarvest_Daph (MajorPush-1)/Packages/packages-lock.json: требуется слияние
Запись в тайнике сохраняется на случай, если она вам понадобится снова.

Я вижу, что мои изменения все еще там, но как мне их восстановить?

Я только попробовал нажать «Восстановить» и столкнулся с вышеуказанной ошибкой. Я напрямую отредактировал все из своего последнего коммита. Мне сказали, что мой пакетный пакет был удален, когда я вернулся к своему незавершенному файлу, поэтому в итоге я ЗАКРЫЛ его - не уверен, стоит ли мне это делать. Теперь я больше не могу открыть файл.

Я также выбрал «оставить изменения в моей ветке» перед переходом на основную, а при переключении обратно в свою ветку я выбрал «перенести изменения». Но изменения, которые я пока вижу спрятанными, соответствуют тем изменениям, которые я делаю.

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

Я новичок в разработке игр, программировании и GitHub, поэтому, пожалуйста, проявите ко мне терпение.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
97
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Самый простой и безопасный способ справиться с любой проблемой управления курсом, подобной этой, — скопировать локальные файлы в новый каталог, затем стереть рабочую копию с контролируемой версией (т. е. локальные файлы), извлечь новую, а затем скопировать изменения в папку. top, как если бы вы только что отредактировали их.

За прошедшие годы я обнаружил, что это помогает решить любую проблему с вашим SCM.

Привет! Означает ли это, что нужно зайти на сайт GitHub, повторно загрузить zip-файл и использовать его для замены моего текущего проекта? После этого - нажимаем восстановить тайник? Должен ли я закрыть github, когда сделаю это?

Daphiie 13.04.2024 16:42

просто скопируйте файлы, чтобы их нельзя было перезаписать, а затем начните заново.

gbjbaanb 13.04.2024 17:15

Мне очень жаль 🙏🏻 wdym путем копирования — я интерпретирую это как создание резервной копии, чтобы мой старый файл не мог быть перезаписан, — но использование повторной загрузки, чтобы начать заново. Я не уверен, это ли ты имеешь в виду

Daphiie 13.04.2024 17:18

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

gbjbaanb 13.04.2024 17:21

Ага, мы оба новички в этом :') так же потеряны, как и я. Мы боимся давить и тянуть GitHub — боимся, что что-то испортим. Только что обнаружил ветки на этой неделе.

Daphiie 13.04.2024 17:58

Привет! Я выполнил замену, но проблема все еще возникает, поэтому я не могу восстановить тайники:') ошибка: не удалось записать индекс FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: необходимо объединить FullHarvest_Daph (MajorPush-1)/Packages /packages-lock.json: необходимо слияние. Запись в тайнике сохраняется на случай, если она вам понадобится снова.

Daphiie 13.04.2024 18:02

О боже, мне просто нужно было зафиксировать изменение перед восстановлением, огромное вам спасибо!

Daphiie 13.04.2024 18:16

Как, черт возьми, никто еще не опубликовал обязательный xkcd? Я знаю, что это неуместно в качестве комментария, но параллель слишком идеальна. Нет, это не тот путь. Научитесь правильно использовать git.

Romain Valeri 05.07.2024 15:11

Ниже приведен ответ пользователя gbjbaanb, все спасибо этому ответу. Вот как это работает:

  • Удалите поврежденный файл, который больше не открывается.
  • Перезагрузите последний коммит, над которым вы работали.
  • Поместите исправный файл в свой проект. Нет необходимости перезапускать или закрывать GitHub: он автоматически распознает новый файл.

Вы можете получить следующую ошибку:

ошибка: Не удалось записать индекс
FullHarvest_Daph (MajorPush-1)/Packages/manifest.json: требуется слияние
FullHarvest_Daph (MajorPush-1)/Packages/packages-lock.json: требуется слияние
Запись в тайнике сохраняется на случай, если она вам понадобится снова.

  • Зафиксируйте новый файл, который вы поместили в свой проект. Это исправит слияние.
  • Восстановить изменения.

Я работаю с TortoiseGit в Windows. Я столкнулся с этой ошибкой, когда пытался «спрятать» какую-то работу.

Ошибка говорит о том, что файл «нужно объединить» для трех файлов подряд. Поэтому я щелкнул правой кнопкой мыши запись тайника в списке тайников и объединил ее со своей веткой. Я позволил ему автоматически сгенерировать сообщение о слиянии и нажал «ОК», но слияние не удалось:

ошибка: объединение невозможно, поскольку у вас есть несвязанные файлы.
подсказка: исправьте их в рабочем дереве, а затем используйте «git add/rm». подсказка: при необходимости отметьте разрешение и сделайте коммит. фатальный: выход из-за неразрешенного конфликта.

git завершился некорректно (код выхода 128) (328 мс @ 05.07.2024) 16:54:44)

Еще одно всплывающее окно показало:

ЧерепахаGit

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

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

Если вы хотите прервать слияние, выполните полный сброс HEAD или выберите «Отменить слияние» в контекстном меню.

Дополнительную информацию см. в справке.

После нажатия ОК в списке появилось три конфликтующих файла, как раз те, которые тоже мешали "применить тайник". Снова нажав ОК, я мог бы нажать:

  • на «Решить» в левом нижнем углу
  • или «Зафиксировать» в центре справа.

Я нажал «Разрешить», и три файла изменили цвет с красного на черный, с синим «Успех» под ними и примечанием в левом нижнем углу (с такой грамматикой):

Вам необходимо зафиксировать изменения после разрешения конфликта.

Таким образом, я мог бы и, возможно, должен был бы также нажать «Зафиксировать», но я этого не сделал, так как не хотел, чтобы сверху был еще один коммит.

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

Из этого я прочитал, что конфликты ушли. После этого я мог работать дальше. Я не говорю, что вам следует делать то же самое, я мог просто рискнуть, поскольку знал, что у меня все равно есть копия моей работы. Я думаю, что нажимать «Решить» без выбора правильного исправления не следует. Но для меня это сработало хорошо, никакой работы сверху, я мог спрятать, а затем выполнить полный сброс и, следовательно, избежать еще одного коммита.

Другие вопросы по теме

Похожие вопросы

Как сделать ветку git потомком другой, не меняя ее содержимого?
Использование Elasticsearch для поиска репозитория git с ветками
Как запустить конвейер CI/CD только в главной ветке, используя конфигурацию GitLab CI/CD?
Автоматическое изменение формулировки большого количества коммитов Git, особенно для файла проекта, содержащегося в папке с множеством других файлов
Git diff — показывать только ту часть строки, которая отличается, а не всю строку
Разрешение конфликтов слияния между защищенными ветками
Заставить Git напомнить мне использовать переключатель/восстановление вместо оформления заказа
Почему запуск git fetch в GitHub Actions занимает много времени?
Как использовать «git show» для получения одного файла, но указать URL-адрес удаленного репозитория для Azure DevOps?
Фатальный: не удалось прочитать пароль для «https://[email protected]/org/Project/_git/Repo»: запросы терминала отключены