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



Попробуйте наш инструмент устранения неполадок

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



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

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



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



Что такое репозитории? Что такое push и pull в Git?

Репозиторий - это своего рода хранилище для кода, который постоянно изменяется и получается членами команды через механизм контроля версий GitHub. A ‘ Тянуть' означает, что вы загружаете последнюю версию репозитория в свое локальное хранилище / IDE (интегрированную среду разработки), такую ​​как Pycharm и т. д.

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

Если вы новичок в управлении версиями Github, рекомендуется сначала изучить все основы. В этой статье мы предполагаем, что у вас уже есть базовые знания и вы знаете все тонкости.



Как исправить «Ваши локальные изменения в следующих файлах будут перезаписаны слиянием»?

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

Следовательно, мы рекомендуем вам проконсультироваться с членами вашей команды и убедиться, что вы все в порядке. та же страница прежде чем двигаться вперед. Если вы сделаете коммит или нажмете не ту версию, это может повлиять на всю команду.

Метод 1. Принудительное оттягивание для перезаписи локальных изменений

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

Выполните следующие команды в своей среде IDE:

git reset - жесткий git pull

Это мгновенно уничтожит все ваши локальные изменения, поэтому убедитесь, что вы знаете, что делаете, и не нуждаетесь в ваших локальных изменениях.

Метод 2: Сохранение обоих изменений (локальных и из репо)

Если вы хотите сохранить оба изменения (изменения, сделанные локально, и изменения, присутствующие в репозитории), вы можете добавить и зафиксировать свои изменения. Когда вы потянете, очевидно, будет конфликт слияния. Здесь вы можете использовать инструменты в вашей среде IDE (такие как Difftool и mergetool), чтобы сравнить два фрагмента кода и определить, какие изменения следует сохранить, а какие удалить. Это средний путь; никакие изменения не будут потеряны, пока вы не удалите их вручную.

git add $ the_file_under_error git commit git pull

Когда вы получаете конфликт слияния, откройте эти инструменты разрешения конфликтов и проверьте строку за строкой.

Метод 3: Сохранение обоих изменений, НО без фиксации

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

git stash save --keep-index

или же

git stash
git pull git stash pop

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

git stash применить

вместо pop, если вы не готовы потерять спрятанный код из-за конфликтов.

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

git stash git pull --rebase origin master git stash pop

Метод 4. Внесите изменения в «определенные» части кода.

Если вы хотите внести изменения в определенные части кода и не хотите заменять все, вы можете совершить все, что вы не хотите перезаписывать, а затем следуйте методу 3. Вы можете использовать следующую команду для изменений, которые вы хотите перезаписать из версии, присутствующей в репозитории:

git checkout path / to / file / to / revert

или же

git checkout HEAD ^ путь / к / файлу / к / вернуться

Кроме того, вам необходимо убедиться, что файл не загружен через:

git сбросить путь HEAD / в / файл / в / вернуться

Затем выполните команду pull:

git pull

Затем будет произведена попытка получить версию из репозитория.

3 минуты на чтение