Я пробовал git branch -r
, но это только списки удаленных ветвей, которые я отслеживал локально. Как найти список тех, что у меня нет? (Мне не важно, перечисляет ли команда все удаленные ветки или только те, которые не отслеживаются.)
Как перечислить все удаленные ветки в Git 1.7+?
Ответ 1
Для подавляющего большинства [1] посетителей здесь правильный и самый простой ответ на вопрос "Как мне перечислить все удаленные ветки в Git 1. 7+?" является:
git branch -r
Для небольшого меньшинства [1]git branch -r
не работает. Если git branch -r
не работает, попробуйте:
git ls-remote --heads <remote-name>
Если git branch -r
не работает, то, возможно, как сказал Каскабель, "вы изменили стандартную refspec, чтобы git fetch
и git remote update
не извлекали все remote
ветки".
[1] На момент написания этой сноски 2018-февраль я посмотрел комментарии и увидел, что git branch -r
работает для подавляющего большинства (около 90% или 125 из 140).
Если git branch -r
не работает, проверьте, что git config --get remote.origin.fetch
содержит подстановочный знак (*
) согласно этому ответу
Ответ 2
remote show
отображает все ветки на пульте дистанционного управления, в том числе те, которые не отслеживаются локально и даже те, которые еще не были извлечены.
git remote show <remote-name>
Он также пытается показать статус ветвей относительно вашего локального репо:
> git remote show origin
* remote origin
Fetch URL: C:/git/.\remote_repo.git
Push URL: C:/git/.\remote_repo.git
HEAD branch: master
Remote branches:
branch_that_is_not_even_fetched new (next fetch will store in remotes/origin)
branch_that_is_not_tracked tracked
branch_that_is_tracked tracked
master tracked
Local branches configured for 'git pull':
branch_that_is_tracked merges with remote branch_that_is_tracked
master merges with remote master
Local refs configured for 'git push':
branch_that_is_tracked pushes to branch_that_is_tracked (fast-forwardable)
master pushes to master (up to date)
Ответ 3
git branch -a | grep remotes/*
Ответ 4
С помощью git branch -r
перечислены все удаленные ветки, а git branch -a
перечислены все ветки на локальном и удаленном. Однако эти списки устарели. Чтобы эти списки обновлялись, запустите
git remote update --prune
который обновит ваш локальный список веток всеми новыми из удаленного и удалит все, которых больше нет. Выполнение этой команды обновления без -prune будет получать новые ветки, но не удалять их больше не на пульте дистанционного управления.
Вы можете ускорить это обновление, указав пульт, иначе он вытащит обновления из всех добавленных вами пультов, например
git remote update --prune origin
Ответ 5
Но
git branch -ar
должен это сделать.
Ответ 6
Вы также можете сделать git fetch
, а затем git branch -r
. Без извлечения вы не увидите самые последние ветки.
Ответ 7
Git Ветвление - удаленные ветки
git ls-remote
Ответ 8
Самый простой способ, который я нашел:
git branch -a
Ответ 9
TL; ТР;
Это решение вашей проблемы:
git remote update --prune # To update all remotes
git branch -r # To display remote branches
или
git remote update --prune # To update all remotes
git branch <TAB> # To display all branches
Ответ 10
Лучшая команда для запуска - git remote show [remote]
. Это покажет все ветки, удаленные и локальные, отслеживаемые и не отслеживаемые.
Вот пример из проекта с открытым исходным кодом:
> git remote show origin
* remote origin
Fetch URL: https://github.com/OneBusAway/onebusaway-android
Push URL: https://github.com/OneBusAway/onebusaway-android
HEAD branch: master
Remote branches:
amazon-rc2 new (next fetch will store in remotes/origin)
amazon-rc3 new (next fetch will store in remotes/origin)
arrivalStyleBDefault new (next fetch will store in remotes/origin)
develop tracked
master tracked
refs/remotes/origin/branding stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
develop merges with remote develop
master merges with remote master
Local refs configured for 'git push':
develop pushes to develop (local out of date)
master pushes to master (up to date)
Если мы хотим получить удаленные ветки, мы можем использовать grep
. Команда, которую мы хотим использовать, будет следующей:
grep "\w*\s*(new|tracked)" -E
С помощью этой команды:
> git remote show origin | grep "\w*\s*(new|tracked)" -E
amazon-rc2 new (next fetch will store in remotes/origin)
amazon-rc3 new (next fetch will store in remotes/origin)
arrivalStyleBDefault new (next fetch will store in remotes/origin)
develop tracked
master tracked
Вы также можете создать псевдоним для этого:
git config --global alias.branches "!git remote show origin | grep \w*\s*(new|tracked) -E"
Затем вы можете просто запустить git branches
.
Ответ 11
С GitBash вы можете использовать:
Git Branch -a
Ответ 12
попробуй это....
git fetch origin
git branch -a
Ответ 13
Убедитесь, что выбранное вами удаленное начало - это действительно репозиторий, который вы хотите, а не старый клон.
Ответ 14
Я закончил работу с конвейером командной оболочки, чтобы получить то, что я хотел, только что объединил ветки с удаленного источника:
git branch -r --all --merged \
| tail -n +2 \
| grep -P '^ remotes/origin/(?!HEAD)' \
| perl -p -e 's/^ remotes\/origin\///g;s/master\n//g'
Ответ 15
Используя эту команду,
git log -r --oneline --no-merges --simplify-by-decoration --pretty=format:"%n %Cred CommitID %Creset: %h %n %Cred Remote Branch %Creset :%d %n %Cred Commit Message %Creset: %s %n"
CommitID : 27385d919
Remote Branch : (origin/ALPHA)
Commit Message : New branch created
Перечислите все удаленные ветки, в том числе сообщения о коммитах, Id коммитов, на которые ссылаются удаленные ветки.
Ответ 16
Я хотел бы использовать:
git branch -av
Эта команда не только показывает вам список всех веток, включая удаленные ветки, начинающиеся с /remote
но также предоставляет вам *
обратную связь о том, что вы обновили, и комментарии о последнем коммите.
Ответ 17
Если есть удаленная ветвь, о которой вы знаете, должна быть в списке, но ее нет в списке, вы можете убедиться, что ваш источник настроен правильно с помощью этого:
git remote show origin
Если это все хорошо, возможно, вам следует запустить обновление:
git remote update
Предполагая, что это работает успешно, вы должны быть в состоянии сделать то, что говорят другие ответы:
git branch -r
Ответ 18
Просто запустите команду git fetch
. Он вытянет все удаленные ветки в локальный репозиторий, а затем сделает git branch -a
, чтобы вывести список всех веток.
Ответ 19
попробуйте
git branch -at