Чтобы получать новые коммиты
git fetch
Сброс
Вы можете сбросить коммит для локальной ветки, используя git reset
.
Чтобы изменить коммит локальной ветки:
git reset origin/master --hard
Будьте осторожны, как сказано в документации:
Сбрасывает индекс и рабочее дерево. Любые изменения отслеживаемых файлов в рабочем дереве после <commit> отбрасываются.
Если вы хотите сохранить какие-либо изменения, которые вы получили локально - --soft
вместо этого выполните сброс. Который обновит историю коммитов для ветки, но не изменит какие-либо файлы в рабочем каталоге (и вы сможете потом их зафиксировать).
Rebase
Вы можете воспроизвести ваши локальные коммиты поверх любого другого коммита / ветки, используя git rebase
:
git rebase -i origin/master
Это вызовет rebase в интерактивном режиме, где вы можете выбрать способ применения каждого отдельного коммита, которого нет в истории, над которой вы перебираете.
Если коммиты, которые вы удалили (с помощью git push -f
), уже были перетащены в локальную историю, они будут перечислены как коммиты, которые будут применены повторно - их необходимо будет удалить как часть перебазирования, или они просто будут повторно включены в историю для ветки - и вновь появиться в удаленной истории при следующем нажатии.
Используйте справку git command --help
для получения более подробной информации и примеров по любой из вышеперечисленных (или других) команд.
git checkout master && git branch -D test && git checkout -b test origin/test