Git: не удается увидеть новую удаленную ветку
коллега нажал новую удаленную ветку на origin / dev / homepage, и я не вижу ее при запуске:
$ git branch -r
Я все еще вижу уже существующие удаленные ветви.
Я предполагаю, что это связано с тем, что мои локальные удаленные ссылки не обновлены, поэтому, когда я запустил git pull, ничего не произошло, так как git pull только тянет текущую рабочую ветвь правильно? В отличие от git push, который толкает все ветви, которые имеют изменения в соответствующей удаленной ветви?
6 ответов:
во-первых, дважды проверьте, что ветка была фактически нажата удаленно, с помощью команды
git ls-remote origin
. Если новая ветвь появляется в выходных данных, попробуйте и дайте командуgit fetch
: он должен загрузить ссылки на ветви из удаленного репозитория.если ваша удаленная ветка по-прежнему не отображается, дважды проверьте (в
ls-remote
вывод) каково имя ветви на пульте дистанционного управления и, в частности, если оно начинается сrefs/heads/
. Это происходит потому, что по умолчанию значениеremote.<name>.fetch
это:+refs/heads/*:refs/remotes/origin/*
так что только удаленные ссылки, чье имя начинается с
refs/heads/
будет отображаться локально как ссылки удаленного отслеживания подrefs/remotes/origin/
(т. е. они станут филиалами удаленного отслеживания)
делать git remote update также будет обновлен список ветвей, доступных из удаленного репозитория.
Если вы используете TortoiseGit, начиная с версии 1.8.3.0, вы можете сделать "git -> Sync", и в левом нижнем углу окна появится кнопка "удаленное обновление". Нажмите на это. Затем вы должны быть в состоянии сделать "Git -> Switch/Checkout" и иметь новую удаленную ветку, появляющуюся в выпадающем списке ветвей, которые вы можете выбрать.
проверить, является ли
.git/config
содержит[remote "origin"] url = … fetch = +refs/heads/master:refs/remotes/origin/master
если это так, измените его, чтобы сказать
[remote "origin"] url = … fetch = +refs/heads/*:refs/remotes/origin/*
затем вы должны быть в состоянии использовать это:
$ git fetch remote: Counting objects: … remote: Compressing objects: .. Unpacking objects: … remote: … From … * [new branch] branchname -> origin/branchname $ git checkout branchname Branch branchname set up to track remote branch branchname from origin. Switched to a new branch 'branchname'