Просто:
git clone $url
Серьезно! Это лучший способ.
Вы можете выполнять всевозможные команды git reset
и git branch
для перемещения ссылок, но единственной целью будет сохранение ваших коммитов где-нибудь в вашем локальном репозитории для дальнейшего использования. Если это цель, просто оставьте весь репозиторий как есть и повторно клонируйте источник.
Чтобы принять все изменения только в одной ветви, foo
:
git checkout foo
git fetch origin +refs/heads/foo:refs/remotes/origin/foo
git reset refs/remotes/origin/foo
foo
теперь будет указывать на тот же коммит, что и foo
на origin
. Если вы хотите удалить файлы из вашего рабочего каталога, добавьте --hard
к git reset
. Если вы хотите объединить сначала, замените fetch
на pull
.
В вашем локальном репо может быть куча свисающих коммитов, которые git может когда-нибудь почистить, но некоторое время вы можете получить к ним доступ через reflog.