Итак, вы говорите, что мастер происхождения был возвращен, но вам нужно добавить обратно внесенные изменения? Как
[branch feature/A-Fixed]
o commit A-fixed
[branch master] |
commit revert A * |
| /
|/
commit A o
|
.
В этом случае объединение мастера с вашей веткой объектов означает, что к вашим изменениям будет добавлен возвратный коммит, помеченный *
на приведенном выше графике, поэтому из вашей ветки удаляется материал.
Итак, что вы можете сделать, это создать новую ветку, начиная с фиксации возврата, затем снова вернуться к возврату (un-revert <), объединить эту ветку с вашей веткой возможностей, а затем слить master с вашей веткой. </p>
git checkout <reverted> -b revert-branch
git revert <reverted>
git checkout feature/fixed-A
git merge revert-branch # rebase would also work
git branch -D revert-branch
git merge master
#... continue with your normal workflow
Таким образом, при слиянии master, возврат уже находится в вашей ветви функций, но отменен фиксацией unrevert, поэтому возврат не будет добавлен к вашим изменениям.
[branch feature/A-Fixed]
o merge revert-branch
/|
/ | [previous state of branch feature/A-Fixed]
| o commit A-fixed
| |
o commit revert revert A
[branch master] | |
new commit * | |
| / /
|/ /
commit revert A o /
| /
|/
commit A o
|
.
Вы можете видеть, что теперь возвратный коммит уже находится в вашей ветви функций, поэтому объединяющий мастер может добавить другой коммит, отмеченный *
выше, но не вернуть.
Как правило, в ситуации, когда что-то было возвращено мастеру, и вы хотите поработать с ним и нажать его снова, вы должны начинать с фиксации возврата и сначала отменять (git revert revert-commit).