Я начал слияние git, но сделал локальные изменения, которые хочу сохранить. Я больше не хочу сливаться, а вместо этого продолжаю работать над локальными изменениями. Как мне это сделать?Отменить git merge, но сохранить локальные изменения
ответ
Сначала скопируйте папку, в которой вы работаете, в случае, если произойдет что-то плохое. Git, как правило, довольно пуленепробиваемый, но если вы начнете использовать git reset --hard
, возможно, что это произойдет.
Затем сделайте git commit --patch
, выбрав только те изменения, которые вы хотите сохранить и оставив все, что произошло слиянием. После того, как вы совершили эти изменения, сделайте git reset --hard
, и слияние должно исчезнуть, но ваши изменения все равно должны быть там.
Он не спрашивает о слиянии. Вы просто получаете все, что устраивается, когда вы попадаете в сообщение фиксации. – detly
@detly Это происходит, даже если вы начали с ничто, поставленного, а затем устроили изменения только с помощью 'git commit -patch' или' git add -patch'? – ddsnowboard
Язык, как известно, неоднозначный. :-) Когда вы говорите, «сохранить локальные изменения» вы могли бы означать либо:
- сохранить все текущие изменения в рабочем каталоге, то ли вручную редактировать эти файлы или слияние, что вы, в середине привел их в ; или
- отмените любые изменения, внесенные слиянием, и сохраните внесенные изменения.
Это простое решение адреса точки (1):
$ git stash save
$ git stash pop
Вот стенограмма показывает аффект:
$ git status
On branch stuff-217/apply-new-config-details
All conflicts fixed but you are still merging. <<<<<< notice this line!
Changes to be committed:
modified: package.json
modified: src/wallabyTest.ts
modified: wallaby.js
$ git stash save
Saved working directory and index state WIP on stuff-217/apply-new-config-details...
$ git status
On branch stuff-217/apply-new-config-details
nothing to commit, working tree clean
$ git stash pop
On branch stuff-217/apply-new-config-details
<<<<<< no longer in the merge!
Changes not staged for commit:
modified: package.json
modified: src/wallabyTest.ts
modified: wallaby.js
Вы были в середине фиксирующих конфликтов, не так ли? – ddsnowboard
Если u'r в состоянии слияния конфликтов, попробуйте '$ git merge -abort'. – Kjuly