Это обычный вариант использования для меня: я клонирую репозиторий, проверяю ветку, делаю некоторые изменения кода, делаю несколько коммитов, затем, когда он стабильный, я нажимаю на удаленный, в конечном итоге ветка объединяется и удаляется. и у меня остается местная ветка, в которой нет восходящего потока.
Я искал безопасный способ удалить все такие ветки. из описания казалось, что git remote prune origin делает именно это. Но, похоже, у меня это не работает.
Видя следующее поведение, ветвь encrdb_init
была удалена из remote
, но команда git remote prune origin
, похоже, не сокращает ее. Не знаю почему.
$ git branch
bugfix/encrdb_init
* master
$
$ git remote prune origin
$
$ git checkout bugfix/encrdb_init
Switched to branch 'bugfix/encrdb_init'
Your branch is based on 'origin/bugfix/encrdb_init', but the upstream
is gone.
(use "git branch --unset-upstream" to fixup)
$
$ git branch
bugfix/encrdb_init <<< shouldn't this have been pruned?
* master
для справки добавляем вывод git remote show origin
$ git remote show origin
* remote origin
Fetch URL: <redacted>
Push URL: <redacted>
HEAD branch: master
Remote branches:
SSL_test tracked
addNodeFix tracked
autoprefix tracked
release/1.0.2 tracked
Local branches configured for 'git pull':
bugfix/encrdb_init merges with remote bugfix/encrdb_init
master merges with remote master
release/1.0.2 merges with remote release/1.0.2
Local refs configured for 'git push':
master pushes to master (up to
date)
release/1.0.2 pushes to release/1.0.2 (up to
date)
$ git branch -vv
* bugfix/encrdb_init 341a078c [origin/bugfix/encrdb_init: gone] <redacted comment>`
git remote prune origin --dry-run
проверить устаревшие ветки - person Shubham Khatri   schedule 16.02.2018git remote prune origin --dry-run
вывод пуст - person saketrp   schedule 16.02.2018bugfix/encrdb_init
является локальным (в имени ветки может быть косая черта) - person VonC   schedule 16.02.2018your stale remote-tracking branches
с помощью указанной выше команды. Если вы его не получили, вероятно, что-то еще не так - person Shubham Khatri   schedule 16.02.2018remote
, но не удаляет локальную ветку, которая теперь остается зависшей. Похоже, что команда не удаляет локальные ветки, даже те, которые вышли из восходящего потока. - person saketrp   schedule 16.02.2018git remote
: обновить или удалить в пространстве именremotes
. Не вмешиваться в местные отделения. - person VonC   schedule 16.02.2018