Щойно я виявив, що якщо ваші незапрошені зміни будуть додані до індексу (тобто "поетапно", використовуючи git add ...
), то git stash apply
(і, імовірно, git stash pop
) фактично зробіть належне об'єднання. Якщо конфліктів немає, ти золотий. Якщо ні, вирішіть їх як завжди за допомогою git mergetool
або вручну за допомогою редактора.
Щоб було зрозуміло, це процес, про який я говорю:
mkdir test-repo && cd test-repo && git init
echo test > test.txt
git add test.txt && git commit -m "Initial version"
# here's the interesting part:
# make a local change and stash it:
echo test2 > test.txt
git stash
# make a different local change:
echo test3 > test.txt
# try to apply the previous changes:
git stash apply
# git complains "Cannot apply to a dirty working tree, please stage your changes"
# add "test3" changes to the index, then re-try the stash:
git add test.txt
git stash apply
# git says: "Auto-merging test.txt"
# git says: "CONFLICT (content): Merge conflict in test.txt"
... що, мабуть, те, що ви шукаєте.
тл; д-р
Виконати git add
першим.