Надані відповіді на даний момент не є ідеальними, оскільки вони потребують багато непотрібної роботи над вирішенням конфліктів злиття, або вони роблять занадто багато припущень, які часто хибні. Ось як це зробити ідеально. Посилання на мій власний сайт.
У вас є незаконні зміни щодо того, my_branch
що ви хочете здійснити master
, не вчинивши жодних змін my_branch
.
Приклад
git merge master
git stash -u
git checkout master
git stash apply
git reset
git add example.js
git commit
git checkout .
git clean -f -d
git checkout my_branch
git merge master
git stash pop
Пояснення
Почніть з об'єднання master
у свою філію, оскільки вам доведеться це зробити зрештою, і зараз найкращий час для вирішення будь-яких конфліктів.
Цей -u
параметр (ака --include-untracked
) git stash -u
запобігає втраті файлів, що не відслідковуються, коли пізніше це робиться git clean -f -d
всередині master
.
Після git checkout master
того, як важливо, ви НЕ будете робити git stash pop
, тому що вам буде потрібна ця скринька пізніше. Якщо ви поп тайник , створений в my_branch
а потім зробити git stash
в master
, ви будете викликати непотрібні конфлікти злиття , коли ви застосуєте цей тайник в my_branch
.
git reset
нестабільність все, що є результатом git stash apply
. Наприклад, файли, які були змінені в сховці, але не існують в стадії master
постановки як конфлікти "видалених нами".
git checkout .
і git clean -f -d
відкиньте все, що не вчинено: усі зміни відслідковуваних файлів, а також усіх непотренованих файлів та каталогів. Вони вже зберігаються в сховці, і якщо їх не залишилося, це master
призведе до зайвих конфліктів злиття при переході назад до my_branch
.
Останній git stash pop
базуватиметься на оригіналі my_branch
, і тому не спричинятиме конфліктів злиття. Однак якщо у вашому сховищі містяться відслідковувані файли, які ви зобов’язалися засвоїти, git поскаржиться, що це "Не вдалося відновити відслідковувані файли із сховища". Щоб вирішити цей конфлікт, видалити ці файли з вашого робочого дерева, а потім git stash pop
, git add .
і git reset
.