2015-01-22 4 views
0

Работая над функцией, я время от времени сбрасывал свои изменения, когда думал, что многое сделано.Git: Вручную слияние между текущей версией?

Теперь я понял, что мне нужен код, который я реализовал, спрятал, а затем удалил и снова спрятал. Так что у меня его сейчас нет, но у меня это в одной из моих избитых версий.

Поэтому я не могу просто применить эту скрытую версию, потому что есть много вещей, которые мне не нужно сливать. Есть ли способ объединить его вручную?

В принципе, я могу видеть GIT различий между текущей версией и спрятал один с:

git diff [email protected]{n} 

Но как я могу использовать инструмент слияния (я обычно использую «сливаться»), чтобы объединить?

"Meld" не является обязательным.

ответ

0

Просто сделайте git stash apply (или pop), и он вносит изменения в ваш рабочий каталог. Затем вы можете отменить нежелательные изменения и совершить.

+0

Если я это сделаю, это будет ад, чтобы удалить нежелательные изменения. Theres много материала в большом количестве файлов. Таким образом, это не вариант – rightaway717

+0

@ rightaway717 использовать hank-level 'git add' (или' git gui'), чтобы вставить в индекс набор изменений, который вы хотите зафиксировать и зафиксировать, а затем checkout, чтобы отменить все неуправляемые изменения. Ситуация вы - это не имеет ничего общего с слиянием (разрешение конфликтов). Вы просто хотите выбрать изменения для совершения. – kan

+0

Не собирает изменения для совершения и вставки их в другую ревизию, называемую слиянием? Я не являюсь носителем английского языка, но я даже проверил wiki, и у меня появилась идея, что это именно то, что ручное слияние, или, по крайней мере, вариант этого. Я не говорю об автоматическом слиянии, и это именно то, о чем вы говорите. Во всяком случае, я ценю ваше время, чтобы ответить на вопрос. – rightaway717

0

Это довольно просто

  • фотографий вашей отрасли и убедитесь, что нет неизмененных файлов
  • применить версию копить вам нужно, скажем, п, с "git stash apply [email protected]{n}"
  • теперь проверить изменения, сохранить те, которые вам нужны, и удалить других; Meld должны работать все прямо здесь
  • когда вы уверены, что у вас есть подмножество изменений нужно, добавлять и совершить все файлы

PS: Просто чтобы прояснить, я думаю, что вы хотели сказать, используя MELD как инструмент diff-tool, а не инструмент объединения. В вопросе нет merge.

+0

Ну, может, я ошибаюсь. Но когда я использую Meld, я перетаскиваю изменения с одной стороны на другую, так что для меня это похоже на слияние, не так ли? Или это называется другим? Что касается вашего ответа, я ценю ваше время. Но то, что я искал, - это способ просто открыть текущую и спрятанную версию в каком-нибудь инструменте diff (merge) и перетащить изменения туда и обратно, как я хочу. – rightaway717

Смежные вопросы