#git
#git
Вопрос:
Вот мой процесс:
git checkout featureBranch
# make changes on this branch, add, commit
git rebase master
git checkout master
git merge featureBranch
Влияет ли это на мою главную ветвь постоянно, так что ее история включает в себя историю функциональной ветви? Как я могу избавиться от этого или отменить git rebase, если это уже было сделано?
Ответ №1:
Перебазирование влияет на ветку, которую вы перебазируете, а не на ветку, на которую вы перебазируете. Итак, в этом случае это влияет featureBranch
, но не master
. Однако слияние вашей ветки функций с master
действительно влияет master
, и тогда история master
содержит все коммиты, которые были в master
предыдущих, а также те, что в featureBranch
; это в значительной степени цель слияния: включить изменения из обеих ветвей.
Если вы недовольны перебазированием или слиянием, вы можете просмотреть reflog для этой ветви, выполнив что-то вроде git reflog master
. Это покажет все состояния, в которых находилась эта ветка, и когда ваше рабочее дерево будет чистым, вы сможете запустить git reset --hard COMMIT-ID
. Это приведет к откату этой ветки туда, где вы были раньше, и уничтожит все изменения в вашем рабочем дереве.
Комментарии:
1. Я думаю, что OP ищет
git reflog master