2013-11-13 4 views
0

На ветке я сделал несколько (не могу точно помнить, сколько) git commit и один git pull, что привело к сбою слияния.git, избавиться от локальных коммитов/восстановить ветвь вверх по течению

Я понял, что мои местные изменения/совершения были просто глупыми, и их можно выбросить.

Для этого я сделал:

git checkout master 
git branch -D otherbranch 
git checkout otherbranch 

Это, кажется, не правильный способ отмен вещей - то, что было бы лучше всего?

+0

После того, как вы удалили 'otherbranch' на шаге № 2, вы не имеете никакого смысла на' checkout' to на шаге # 3 – zerkms

+0

Что это не так? Может быть, немного меньше идеального (дополнительный шаг, слегка опасный '-D'), но очевидная альтернатива, использующая' git reset -hard', тоже «немного опасна». – torek

+0

@zerkms Я не совсем уверен, что вы имеете в виду, мой другой канал отслеживает восходящий «otherbranch», то, что я сделал на # 2 и # 3, похоже, приводит к тому, что я хотел. – user964970

ответ

2

Если все, что вам нужно сделать, это сдуть локальные изменения:

git reset --hard @{u} 
3

Вы всегда можете сделать:

git checkout <branch> 
git reset --hard <otherbranch> 

Это изменяет ветвь над точно соответствовать состоянию другой ветви.

+0

Я пробовал несколько тестовых примеров, с этим, кажется, все, что мне было нужно, это сделать «git reset - hard origin/otherbranch» – user964970

0

Отмена в git выполняется с помощью команды reset.

Возвращение к известному состоянию обычно выполняется с использованием git reset --hard <SHA>. SHA выбирается из фиксации, на которую вы хотите вернуться.

+0

Это была моя внутренняя попытка. «Git log» и неудачная попытка идентифицировать известный хэш восходящего потока. – user964970

+0

'git reflog' может быть вам полезна. –

0

Try:

git fetch 

git reset --hard origin/<remote_branch> 
##this will reset your local branch HEAD to TOT commit 

Чтобы избежать слияния коммитов, а мерзавец тянуть, попробуйте:

git pull --rebase 

нормальное git pull создаст фиксацию слияния, если у вас есть локальные несвязанные коммиты.

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