мерзавец, объединяющий изменения в локальном ответвлении

Действительно ли возможно объединить изменения от центрального repo до локального ответвления, не имея необходимость фиксировать/прятать редактирования на локальном ответвлении и ведущем устройстве контроля?

Если я работаю над локальной "работой" ответвления и существуют некоторые незафиксированные изменения, я использую следующие шаги для получения обновлений от центрального repo в мое рабочее ответвление.

git stash
git checkout master
git pull 
git checkout work
git rebase master
git stash pop

Обычно нет никаких незафиксированных изменений в "работе", и затем я опускаю шаги притона.

То, что я действительно хотел бы, является чем-то как следующее:

git pull master  (updates master while work branch is checked out and has changes)
git rebase master (rebases the updates into work branch uncommited changes are still safe)

Действительно ли там что-то легче, чем, что я в настоящее время делаю?

10
задан ScottS 15 April 2010 в 19:30
поделиться

2 ответа

Вы можете выполнить (в ветке работа ):

git stash
git pull --rebase origin master
git stash apply

git pull --rebase и извлекает удаленные изменения, и перемещает ваши локальные изменения поверх удаленных. Т.е. по сути делает то, что вы показываете в своем сценарии.

Локальные изменения, конечно же, должны быть зафиксированы или сохранены при слиянии или перебазировании (потому что, если возникает конфликт слияния, конфликтующие изменения должны быть незафиксированы, чтобы вы могли их разрешить, но Куда тогда пойдут ваши локальные изменения?)

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

12
ответ дан 3 December 2019 в 23:12
поделиться

Я не думаю, что вы сможете вытащить, если у вас есть незафиксированные изменения.

Следовательно, вы можете сделать что-нибудь вроде:

git stash
git pull --rebase <remote> <branch> # Calls rebase instead of merge.
git stash pop
2
ответ дан 3 December 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: