Я хочу объединить пользовательские ответвления в ведущее устройство, однако, сделать некоторый обзор кода и модификацию перед фиксацией слияния.
Например:
o---o---o---o---o master
\
o---o---o lucy
Обычно git merge lucy
закончится как:
,-- "Merge commit"
|
o---o---o---o---o---o master
\ /
o---o---o----' lucy
и после обзора кода и измените:
,-- "Merge commit"
| ,-- "Code review: 1) fixed EOL char, 2) apply tabsize=4, ..."
| |
o---o---o---o---o---o---o master
\ /
o---o---o----' lucy
Вместо вышеупомянутого я хочу сделать фиксацию слияния и фиксацию обзора кода как единственная фиксация:
,-- "Code review & merge: 1) fixed EOL char, 2) apply tabsize=4, ..."
|
o---o---o---o---o---o master
\ /
o---o---o----' lucy
Я попробовал git merge --no-commit
, однако, после того, как затем я не могу сделать более позднюю фиксацию как фиксацию слияния.
Какая-либо идея?
Попробуйте следующий рабочий процесс. После того, как lucy сделан, вместо того, чтобы объединить переоснову. git checkout lucy; git rebase master
. После той точки последняя фиксация lucy совпала бы с тем, что будет иметь слияние от lucy до ведущего устройства.
o---o---o---o---o master
\
o---o---o lucy'
Попросите, чтобы Ваш рецензент кода рассмотрел lucy. Фиксация изменяется по мере необходимости на lucy (* фиксация ниже), затем выполните тривиальное (например, возможно fastforward, если Вы не используете - нет, который я рекомендую), слияние от lucy на ведущем устройстве.
o---o---o---o---o---------------o master
\ /
o---o---o---* lucy'
Единственная другая опция состояла бы в том, чтобы сделать слияние на ведущее устройство и НЕ совместно использовать/продвинуть Ваше ведущее устройство. Имейте обзор кода на своем ведущем устройстве и затем сбросьте далеко слияние lucy и повторно базируйтесь, обзор кода фиксируют на lucy и затем повторно объединяются. Очень ошибка и склонный конфликт.
Я позже прочитал Ваш комментарий, что Вы не можете управлять ответвлением пользователя. Ваша единственная опция является предыдущим абзацем, который заканчивает "очень ошибку и склонный конфликт".
Я Вы не можете управлять ответвлением своего студента, создать новое ответвление Вас собственный, чтобы сделать слияние:
o---o---o---o---o---o master
\ \
| * lucy_merge
\
o---o---o----o lucy
Сделайте слияние и последующие корректировки:
o---o---o---o---o---o master
\ \
| o---o---* lucy_merge
\ /
o----o----o----o lucy
После этого можно или объединить ведущее устройство, если это имело другие фиксации или если очистки были необходимы:
o---o---o---o---o---o---?---?---* master
\ \ /
| o---o---o lucy_merge
\ /
o----o----o----o lucy
Или просто двигайте основной головой и отбросьте ответвление слияния, если не было никаких изменений в ведущем устройстве, и никакая очистка не была необходима:
o---o---o---o---o---o
\ \
| o---* master
\ /
o----o----o----o lucy