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