Если вы получили эту ветку, git reset --soft origin/86
сделает (--soft
только обновляет HEAD
, сброс по умолчанию, --mixed
, также перезагружает записи индекса; --hard
дополнительно сбрасывает рабочее дерево).
Если вы этого не сделаете (или в любом случае, действительно, это работает независимо), это время команды ядра: git update-ref refs/heads/86 origin/86
.
edit: сделать это в В пакетном режиме вы можете создавать команды обновления из записей конфигурации, git update-ref
имеет аргумент --stdin
и небольшой интерпретатор команд для выполнения массовых обновлений.
Я использую ansible для предоставления git Конфигурационные файлы с информацией об удаленном отслеживании, и это единственный случай, когда помещения материала в конфигурационный файл недостаточно из-за проблемы синхронизации между конфигурацией git и удаленными ссылками. Поэтому я хочу воссоздать удаленные ссылки из .gitconfig.
Это должен был быть ваш главный абзац.
Разумно предположить, что вы используете стандартные refspecs, +refs/heads/*:refs/remotes/$remote/*
немного менее разумно предположить, что все идет от origin
, но я оставлю обобщение этого для нескольких пультов или пользовательских refspecs в качестве упражнения для читателя:
git config --get-regexp ^branch\..*\..merge \
| awk -F'[. /]' '{print "update refs/heads/"$2" origin/"$NF}' \
| git update-ref --stdin
На самом деле создать удаленный refs, вам нужно запустить git fetch
, пройдя через git ls-remote
и создание ссылок вручную не поможет, если у вас нет объектов.