При создании филиала B
, вы были на ветви A
, поэтому основание вашей отрасли B
содержит всю работу, которую вы сделали в отрасли A
. Вот почему эти ветви A
теперь находятся в master
. Диаграммно, у вас есть следующая ситуация:
branchA: A -- B -- C
branchB: A -- B -- C -- D
Правильная стратегия, чтобы сделать исправления в master
бы создать ветку от master
:
# assuming you start on branch B
git checkout master
git checkout -b master_hotfix
# make the fix
git commit -m 'made the hotfix'
git checkout master
git merge master_hotfix
# carry on as you were
git checkout branchB
отменить то, что вы сделали, вы можете попробовать сбросив ветвь master
до фиксации до того, как произошло ошибочное слияние. Введите git log
и подсчитайте, сколько суммированных пришло в frok слияние с branchB
. Затем введите:
git reset --hard HEAD~N
где N
это число фиксаций, которые вы хотите удалить из master
. Затем примените описанные выше шаги для правильного создания исправления. Обратите внимание, что вы не должны использовать git reset
, если вы уже нажмете ваш местный master
на пульт. В этом случае вы можете попробовать использовать git revert
, но может иметь смысл оставить master
так, как есть, и просто слить branchB
еще раз после того, как у вас есть полная работа.
Вы правы. Оглядываясь назад на мою историю оболочек, это именно то, что я сделал. Я думал, что буду там сумасшедшим в течение часа или около того. –