$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
git автоматически регистрирует каждое значение ref (через reflog). Таким образом, после того, как вы запустите эту команду, тогда master@{1}будет указано предыдущее значение master.
Ответ VonC правильный, но он тратит время на извлечение старого значения master в файловой системе.
Если вам небезразличны осиротевшие объекты в репо, то вы можете запустить git gc
@yourfriendzak, я забыл о том, что вы, возможно, уже проверили мастер до его обновления. Я обновил ответ, чтобы он мог работать даже в этом случае.
Александр Берд
Это работает, даже если вы не находитесь на ведущем устройстве (например, в состоянии отсоединенного HEAD, которое фактически указывает на источник / основание наконечника). Затем вы можете оформить заказ мастера, не переворачивая старые файлы через репозиторий. Большой!
Андрей Мао
20
Если вы уже включены, masterвы можете сделать следующее:
git reset --hard origin/master
Он укажет локальную masterветку на удаленный origin/masterи откажется от любых изменений в рабочем каталоге.
Ответы:
Как KindDragon «s ответ упоминает, вы можете воссоздать
master
непосредственноorigin/master
с:git checkout
Страница людей упоминает:Если
-B
задано,<new_branch>
создается, если его не существует; в противном случае он сбрасывается . Это транзакционный эквивалентПервоначально предложено:
Что-то вроде:
с шагом 2 является необязательным.
источник
Git поддерживает эту команду:
Проверьте
origin/master
ветку и затем сбросьтеmaster
ветку там.источник
git fetch origin master
раньше, чтобы быть увереннымorigin/master
в обновлении?git fetch
первую очередьЯ думаю, что даже ответ VonC имеет сложность по сравнению с этим вариантом:
git автоматически регистрирует каждое значение ref (через reflog). Таким образом, после того, как вы запустите эту команду, тогда
master@{1}
будет указано предыдущее значение master.Ответ VonC правильный, но он тратит время на извлечение старого значения master в файловой системе.
Если вам небезразличны осиротевшие объекты в репо, то вы можете запустить
git gc
источник
Already on 'master'
Если вы уже включены,
master
вы можете сделать следующее:git reset --hard origin/master
Он укажет локальную
master
ветку на удаленныйorigin/master
и откажется от любых изменений в рабочем каталоге.источник
git checkout -B master origin/master
?