Как указано в комментариях: git remote add otherRepo …
только настраивает пульт, он ничего не извлекает из него. Вам нужно будет запустить git fetch otherRepo
для извлечения веток удаленного репозитория, прежде чем вы сможете создавать локальные ветки на их основе.
(ответ на дальнейший комментарий ОП)
Если вы хотите отслеживать только одну ветку из удаленного репозитория, вы можете перенастроить свойство fetch вашего удаленного сервера (remote.otherRepo.fetch
).
# done as a shell function to avoid repeating the repository and branch names
configure-single-branch-fetch() {
git config remote."$1".fetch +refs/heads/"$2":refs/remotes/"${1}/${2}"
}
configure-single-branch-fetch "$remoteName" "$branch"
# i.e. # configure-single-branch-fetch otherRepo master
После этого git fetch otherRepo
будет извлекать только ветку master
удаленного репозитория в otherRepo/master
"ветку удаленного отслеживания" в вашем локальном репозитории.
Чтобы очистить другие «ветви удаленного отслеживания», вы можете удалить их все и повторно выбрать только ту, которую хотите, или выборочно удалить все из них, кроме той, которую вы хотите:
git for-each-ref --shell --format='git branch -dr %(refname:short)' refs/remotes/otherRepo | sh -nv
# remove the -nv if the commands look OK, then
git fetch otherRepo
# OR
git for-each-ref --shell --format='test %(refname:short) != otherRepo/master && git branch -dr %(refname:short)' refs/remotes/otherRepo | sh -nv
# remove the -nv if the commands look OK
Если вы решили, что хотите отслеживать более одной удаленной ветви, но не все из них, вы можете иметь несколько конфигураций выборки (с помощью git config --add remote."$remoteName".fetch …
или с помощью git config --edit
для непосредственного дублирования и редактирования строки в репозитории файл конфигурации).
Если вы также хотите избежать выборки тегов с пульта, настройте свойство tagopt вашего пульта (remote.otherRepo.tagopt
).
git config remote."$remoteName".tagopt --no-tags
# i.e. # git config remote.otherRepo.tagopt --no-tags