Я пробовал git branch -r
, но в нем перечислены только удаленные ветви, которые я отслеживал локально. Как мне найти список тех, кого у меня нет? (Для меня не имеет значения, перечисляет ли команда все удаленные ветви или только те, которые не отслеживаются.)
git
branch
git-branch
remote-branch
Джеймс А. Розен
источник
источник
git fetch
иgit remote update
не забираете все ветви пульта? Потому что в противном случае вы можете просто получить и использоватьgit branch -r
...git branch -r
показывал только удаленные ветви, которые я отслеживал локально. Сейчас работает лучше.Ответы:
Для подавляющего большинства [1] посетителей здесь правильный и простой ответ на вопрос «Как мне перечислить все удаленные ветви в Git 1.7+?» является:
Для небольшого меньшинства [1]
git branch -r
не работает. Еслиgit branch -r
не работает попробуйте:Если
git branch -r
не работает, то , может быть , как Cascabel говорит «вы изменили refspec по умолчанию, так чтоgit fetch
иgit remote update
не забирают всеremote
ветви«s» .[1] На момент написания этой сноски 2018-февраль я посмотрел на комментарии и увидел, что
git branch -r
работы для подавляющего большинства (около 90% или 125 из 140 ).Если
git branch -r
не работает, проверкаgit config --get remote.origin.fetch
содержит подстановочный знак (*
) согласно этому ответуисточник
git ls-remote [url]
так, чтобы вам не нужно было сначала клонировать его :)git branch -r
так как это правильный и самый простой ответ, у автора был особый случай, когда он изменил свое поведение,git branch -r
которое большинство пользователей, приходящих сюда, не будут естьgit branch -r
также не работал для меня. Это просто список веток, уже отслеженных локально. Ноgit ls-remote --heads
перечислены все ветки, доступные в удаленном хранилище ...git ls-remote
(и не перечисленных вgit branch -r
), он должен выполнитьgit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
перед извлечением, как описано на stackoverflow.com/a/26649770/873282 .git fetch --all
прежде чем получить все текущие удаленные ветви.remote show
показывает все ветви на удаленном компьютере, включая те, которые не отслеживаются локально, и даже те, которые еще не были извлечены.Он также пытается показать состояние веток относительно вашего локального хранилища:
источник
branch_that_is_not_tracked tracked
?branch_that_is_not_tracked
это ветка, которая не отслеживается ни одной локальной веткой git. Однако он был загружен в локальный репозиторий (так что есть удаленная ветвь). По какой-то странной причинеgit remote show
вызывает это состояниеtracked
, хотя нет локальной ветки, которая отслеживает удаленный. В этом случае противоположностьtracked
isnew
, что означает «не извлечено».git branch -r
предполагает, что удаленная ветвь все еще существует, ноgit remote show origin
показывает, чтоrefs/remotes/origin/my-now-dead-branch stale (use 'git remote prune' to remove)
. Гораздо полезнее!источник
git branch -r
, что, по словам ОП, недостаточно.git branch -a
иgit branch -r
перечислить все удаленные ветви для меня, я не уверен, правда ли то, что сказал ОП. Я просто настроил тестовое хранилище и проверил это (имел только мастер / источник отслеживания master, но все равно видел все удаленные ветви с обоими флагами).git fetch
следовалgit branch -a
, что только недавно начало терпеть неудачу для меня. Возможно, поведение мерзавца изменилось?Используя
git branch -r
списки всех удаленных филиалов иgit branch -a
списки всех филиалов на локальных и удаленных. Эти списки устарели, хотя. Чтобы поддерживать эти списки в актуальном состоянии, запуститекоторый обновит ваш локальный список филиалов со всеми новыми с удаленного и удалит все, которых больше нет. Выполнение этой команды обновления без --prune извлечет новые ветви, но не удалит те, которые больше не находятся на удаленном компьютере.
Вы можете ускорить это обновление, указав пульт, иначе он будет получать обновления со всех добавленных вами пультов, например, так
источник
Но
git branch -ar
должен сделать это.
источник
-r
возвращает только удаленные ветки.-a
возвращает как локальные, так и удаленные филиалы. Таким образом,git branch -a
иgit branch -ar
оба дают одинаковый выход.Вы также можете сделать
git fetch
послеgit branch -r
. Без fetch вы не увидите самые актуальные ветки.источник
git fetch --all
иметь все текущие веткиGit Branching - Удаленные ветки
Git документация .
источник
heads/
вrefs/heads/features/my-branch
, спасибо!Самый простой способ, который я нашел:
источник
TL; TR;
Это решение вашей проблемы:
или:
источник
Лучшая команда для запуска
git remote show [remote]
. Это покажет все ветви, удаленные и локальные, отслеженные и неотслеживаемые.Вот пример из проекта с открытым исходным кодом:
Если мы просто хотим получить удаленные ветки, мы можем использовать
grep
. Команда, которую мы хотели бы использовать:С помощью этой команды:
Вы также можете создать псевдоним для этого:
Тогда вы можете просто бежать
git branches
.источник
С Git Bash вы можете использовать:
источник
Попробуй это...
источник
Просто запустите
git fetch
команду. Он вытянет все удаленные ветви в ваш локальный репозиторий, а затем сделаетgit branch -a
список всех ветвей.источник
Если есть удаленная ветка, которая, как вы знаете, должна быть в списке, но ее нет в списке, вы можете проверить, правильно ли настроен ваш источник:
Если это все хорошо, возможно, вам стоит запустить обновление:
Предполагая, что это работает успешно, вы должны быть в состоянии сделать то, что говорят другие ответы:
источник
Используя эту команду,
В нем перечислены все удаленные ветви, включая сообщения о фиксации и идентификаторы фиксации, на которые ссылаются удаленные ветви.
источник
Я хотел бы использовать:
Эта команда не только показывает вам список всех веток, включая удаленные, начиная с веток
/remote
, но также предоставляет вам*
отзывы о том, что вы обновили, и комментарии о последнем коммите.источник
Убедитесь, что удаленный источник, который вы перечисляете, действительно является требуемым хранилищем, а не более старым клоном.
источник
Я закончил тем, что делал беспорядок оболочки, чтобы получить то, что я хотел. Я просто слил ветки из источника удаленного:
источник
Принятый ответ работает для меня. Но я считаю более полезным сортировать коммиты, начиная с самых последних.
git branch -r --sort=-committerdate
источник