Git: сброс - тяжело, теперь я застрял в прошлом - PullRequest
9 голосов
/ 21 ноября 2011

Я возился с reset после прочтения материала в книге Pro Git.

В основном я закончил тем, что делал reset --hard для ревизии 12 коммитов предыдущего.

Я могуКажется, не вернуться к настоящему, или последний коммит.Я пробовал reset, используя ORIG_HEAD и даже подал его в sha1 ревизии, чтобы перейти к следующему.

Запуск git status Я получаю: ваша ветвь отстает на 12 коммитов и может быть быстрой-направлено.

Как мне перевести HEAD обратно на последний коммит?

Ответы [ 3 ]

12 голосов
/ 21 ноября 2011

Используйте журнал, чтобы узнать, куда вы хотите пойти.Вы можете получить его, используя git reflog, а затем просто сбросить до соответствующего коммита.Если вы ничего не сделали с момента сброса,

git reset --hard 'HEAD@{1}'

должно сделать это.

4 голосов
/ 21 ноября 2011

Кажется, что вы уже нажали 12 коммитов, которые вы сбросили. Если это так, то

git merge --ff-only REMOTE/BRANCH_NAME

должно работать, где REMOTE - это имя удаленного (обычно origin), а BRANCH_NAME - имя вашей текущей ветки.

3 голосов
/ 21 ноября 2011

Другой способ (помимо reflog) - использовать тот факт, что ваша ветвь, по-видимому, ссылается на стороне пространства имен remotes, как удаленную ветвь, поэтому вы видите:

Your branch is behind by 12 commits and can be fast-forwarded.

Простой

git merge origin/yourBranch

должно быть достаточно для быстрой пересылки HEAD вашего локального филиала туда, где находился ваш удаленный филиал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...