Як виправити помилку Git & lsquo; Ваші локальні зміни в наступних файлах будуть замінені злиттям & rsquo;

Повідомлення про помилку " Ваші локальні зміни в наступних файлах будуть замінені шляхом злиття " з'являється в механізмі контролю версій Git. Ця помилка виникає, якщо ви змінили файл, який також має зміни у віддаленому сховищі.

Помилка Git: Ваші локальні зміни в наступних файлах будуть перезаписані об'єднанням під час кодування

Це повідомлення про помилку уникається, якщо у віддаленому сховищі немає незакріплених файлів, які також мають зміни. Випробовуючи це повідомлення, найкраще проконсультуватися з іншими членами команди та попросити їх думки. Якщо ви хочете об'єднати свої локальні зміни або зберегти версію у сховищі, найкраще тримати всіх на борту.

Що таке сховища? Що таке push і pull в Git?

Репозиторій - це свого роду сховище для коду, яке постійно модифікується та отримується членами команди за допомогою механізму управління версіями GitHub. " Pull" означає, що ви перетягуєте останню версію сховища на локальне сховище / IDE (інтегроване середовище розробки), таке як Pycharm тощо.

Після витягування ви вносите зміни в код або додаєте більше функцій. Закінчивши, ви " натискаєте" код на сховище, щоб зміни зберігалися та додавались. Код стає доступним і для інших людей.

Якщо ви новачок у контролі версій Github, рекомендується спочатку ознайомитися з усіма основами. У цій статті ми припускаємо, що ви вже маєте базові знання і знаєте всі тонкощі.

Як виправити: "Ваші локальні зміни в наступних файлах будуть замінені шляхом злиття"?

Дозвіл цього повідомлення про помилку залежить від того, що ви хочете зробити. Ви можете відкинути свої локальні зміни та витягнути їх у сховищі, або ви можете зберегти свої локальні зміни у сховищі та витягти версію зі сховища. Все залежить від ваших уподобань.

Отже, ми рекомендуємо проконсультуватися з членами вашої команди та переконатися, що ви всі на одній сторінці, перш ніж рухатись вперед. Якщо ви вчинили неправильно або просунули неправильну версію, це може вплинути на всю команду.

Спосіб 1: Примусове витягування для перезапису локальних змін

Якщо вас не хвилюють зміни, внесені локально, і ви хочете отримати код із сховища, ви можете змусити потягнути. Це перезапише всі локальні зміни, внесені на вашому комп’ютері, з’явиться копія версії у сховищі.

Виконайте такі команди в IDE:

git reset - жорсткий git pull

Це миттєво знищить усі ваші локальні зміни, тому переконайтесь, що ви знаєте, що робите, і не потребуєте локальних змін.

Спосіб 2: Зберігання обох змін (локальних та з репо)

Якщо ви хочете зберегти обидві зміни (зміни, внесені локально, і зміни, що містяться у сховищі), ви можете додати та зафіксувати свої зміни. Коли ви витягнете, очевидно, буде конфлікт злиття. Тут ви можете використовувати інструменти у вашій IDE (такі як Difftool та mergetool), щоб порівняти дві частини коду та визначити, які зміни слід зберегти, а які видалити. Це середній шлях; жодні зміни не будуть втрачені, поки ви не видалите їх вручну.

git додати $ the_file_under_error git commit git pull

Коли ви отримуєте конфлікт злиття, виконайте ці інструменти вирішення конфліктів і перевіряйте рядки за рядками.

Метод 3: Збереження обох змін, АЛЕ не фіксація

Ця ситуація трапляється час від часу, коли розробники не готові до коміту, оскільки існує якийсь частково непрацюючий код, який ви налагоджуєте. Тут ми можемо безпечно сховати зміни, витягти версію зі сховища, а потім зняти з коду код.

git stash save --keep-index

або

git stash
git pull git stash pop - -

Якщо після розкриття схованки виникають конфлікти, вирішуйте їх звичайним способом. Ви також можете скористатися командою:

git stash застосувати

замість попси, якщо ви не готові втратити схований код через конфлікти.

Якщо злиття не здається вам життєздатним варіантом, подумайте про перебазування. Перебазування - це процес переміщення або об'єднання послідовності комітів до нового базового коміту. У разі перебазування змініть код на:

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

Метод 4: Внесіть зміни до „конкретних” частин коду

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

git checkout path / to / file / to / revert

або

git checkout HEAD ^ шлях / до / файлу / до / повернення

Крім того, вам потрібно переконатися, що файл не інсценований через:

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

Потім виконайте команду pull:

git pull

Потім буде здійснена спроба завантаження версії зі сховища.