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

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

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

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

Что такое репозитории? Что такое толчок и притяжение в Git?

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

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

Если вы новичок в управлении версиями 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 pull git stash pop 

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

 Git Stash применить 

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

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

 git stash git pull - восстановить исходный мастер git stash pop 

Способ 4: внесите изменения в «определенные» части вашего кода

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

 git checkout path / to / file / to / revert 

или же

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

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

 git reset HEAD path / to / file / to / revert 

Затем перейдите к команде pull:

 мерзавец 

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

Интересные статьи