2015-04-09 2 views
0

Я работал с веткой развития и делал фиксацию.git как отменить Объединить ветку «мастер» репо в развитие ветки

И потом, я должен был сделать git pull origin develop - вместо этого я случайно сделал это git pull origin master

Затем я увидел это сообщение Merge branch 'master' of repo into develop branch

Есть в любом случае я могу отменить это?

ответ

2

Сброс слияния фиксации:

git reset --hard HEAD~ 

и тянуть снова

git pull origin develop 

PS: Я полагаю, что ваши develop ветви фактические указывает на слияние фиксации.

EDIT

, если я сделаю это, я бы потерять коммит сделал в разработке отрасли? Без прав ?

Объявление не будет называться больше, но оно все еще существует. Git будет держать недостижимые коммиты на некоторое время. Значение по умолчанию - 90 дней. См git gc

Опциональная конфигурация переменная gc.reflogExpire может быть установлена, чтобы указать, как долго исторические записи в пределах reflog каждого филиала должны оставаться доступными в этом хранилище. Установка выражается как длительность, например, 90 дней или 3 месяца. По умолчанию 90 дней.

Так что в течение этого периода вы можете восстановить фиксацию, но вы должны знать, что это id. Вы находите идентификатор в reflog, если он еще не истек, или просто сохраните его где-нибудь.

Если вы не чувствуете себя хорошо, вы можете просто создать локальную ветвь, которая указывает на фактическую фиксацию вашей ветки develop, прежде чем делать git reset --hard. В этом случае локальная ветвь резервного копирования будет ссылаться на фиксацию, и git gc не удалит ее (поскольку она ссылается). Например.

git branch backup/develop 
git reset --hard HEAD~ 

Если вы сейчас думаете: «О нет, я хочу вернуться». Просто сделайте

git reset --hard backup/develop 

в противном случае удалить локальную резервную ветвь

git branch -D backup/develop 
+0

, если я сделаю это, я бы потерять коммит сделал в разработке отрасли? Без прав ? –

+0

@AjeeshJoshy Я обновил свой ответ –

Смежные вопросы