Влияет ли Git Rebase Master на локальную главную ветвь?

#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