2016-01-21 3 views
2

Я начал слияние git, но сделал локальные изменения, которые хочу сохранить. Я больше не хочу сливаться, а вместо этого продолжаю работать над локальными изменениями. Как мне это сделать?Отменить git merge, но сохранить локальные изменения

+0

Вы были в середине фиксирующих конфликтов, не так ли? – ddsnowboard

+0

Если u'r в состоянии слияния конфликтов, попробуйте '$ git merge -abort'. – Kjuly

ответ

0

Сначала скопируйте папку, в которой вы работаете, в случае, если произойдет что-то плохое. Git, как правило, довольно пуленепробиваемый, но если вы начнете использовать git reset --hard, возможно, что это произойдет.

Затем сделайте git commit --patch, выбрав только те изменения, которые вы хотите сохранить и оставив все, что произошло слиянием. После того, как вы совершили эти изменения, сделайте git reset --hard, и слияние должно исчезнуть, но ваши изменения все равно должны быть там.

+0

Он не спрашивает о слиянии. Вы просто получаете все, что устраивается, когда вы попадаете в сообщение фиксации. – detly

+0

@detly Это происходит, даже если вы начали с ничто, поставленного, а затем устроили изменения только с помощью 'git commit -patch' или' git add -patch'? – ddsnowboard

2

Язык, как известно, неоднозначный. :-) Когда вы говорите, «сохранить локальные изменения» вы могли бы означать либо:

  1. сохранить все текущие изменения в рабочем каталоге, то ли вручную редактировать эти файлы или слияние, что вы, в середине привел их в ; или
  2. отмените любые изменения, внесенные слиянием, и сохраните внесенные изменения.

Это простое решение адреса точки (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