В Git-ветке не отображается [пропал] из-за отсутствующих пультов - PullRequest
0 голосов
/ 01 ноября 2019

Я пытался найти способ удалить локальные ветви git без ветки upstream , но ни один из ответов в связанном вопросе не сработал для меня. Кажется, что все они полагаются на git branch -vv вывод gone] для веток без пульта, но это не так для меня, и я не могу понять, почему.

Например, после запуска get fetch --prune, git branch -vv показывает ветвь rsg/revert без тега [gone].

  rsg/revert                       af2c4ac81e Remove temporary debug logging

Однако нет соответствующей ветки origin/rsg/revert (я уже удалил ее на Github). Кто-нибудь знает, почему это не работает?

Редактировать: я использую Git 2.15.0 на Mac. У меня никогда не было проблем с этим раньше.

1 Ответ

2 голосов
/ 01 ноября 2019

Ваш Git достаточно новый, и вы запустили git fetch --prune, поэтому остался только один вывод: rsg/revert имеет неверный восходящий поток или вообще не имеет восходящего потока.

Чтобы увидеть настройки восходящего потока - илиполучите ошибку, если ее нет - используйте git rev-parse, как это (обратите внимание, что для некоторых оболочек может потребоваться заключить в фигурные скобки):

git rev-parse --abbrev-ref rsg/revert@{u}

Например:

$ git rev-parse --abbrev-ref master@{u}
origin/master
$ git rev-parse --abbrev-ref dev@{u}
fatal: no upstream configured for branch 'dev'

Восходящий потокиз моего master здесь origin/master, но для моего dev.

не задан восходящий поток. Вывод git branch -vv будет включать слово gone в квадратных скобках тогда и только тогда, когда:

  • ветвь имеет установленный восходящий поток, а
  • восходящий поток, установленный для этой ветки, больше не ссылается на действительное имя.

Так что если якаким-то образом удалить origin/master из моего собственного репозитория Git (что я могу сделать с помощью различных команд обслуживания Git или с git branch -d -r origin/master), и я получу:

$ git branch -d -r origin/master
Deleted remote-tracking branch origin/master (was 08da6496b6).
$ git branch -vv
  dev             9c9b961d7e The sixth batch
* master          08da6496b6 [origin/master: gone] Eighth batch

(затем я запустил git fetch, чтобы забратьновые коммиты и заново создайте мой origin/master, который теперь f21f8f5d35 вместо 08da6496b6.)

Учитывая, что у вас был GitHub deдавайте rsg/revert, а затем запустим git fetch -p, который удалил origin/rsg/revert, ваша ветвь rsg/revert должна что-то еще или ничего, как ее восходящий поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...