Вы также можете попробовать этот плагин jQuery: https://github.com/morr/jquery.appear
Его не следует удалять.
Ваши местные ветви - которые на самом деле следует просто назвать «вашими ветвями» - являются вашими . Только ваши имена для удаленного слежения , origin/*
в данном случае не являются вашими. 1 sup> Так что если origin
имел ветку с именем xyzzy
ранее, но не имеет более того, git fetch --prune origin
или git remote prune origin
удаляет ваш origin/xyzzy
в соответствии с недостатком origin
xyzzy
.
Это не касается ваших ветвей, которые являются вашими . Если вы уверены, что они могут пойти сейчас, вам придется удалить их самостоятельно. Люди написали сценарии для этого, но сказали, что сценарии, как правило, глупы: они часто удаляют ваши xyzzy
, даже если у вас есть коммиты, которые вы забыли нажать перед слиянием или намеревались перейти в другую ветку , и как только ваш xyzzy
удален, часто бывает слишком поздно. Поэтому будьте осторожны с такими сценариями.
(Было бы неплохо иметь опцию для этих команд, которая говорит им: Если у меня есть локальная ветвь xyzzy
, которая указывает на тот же коммит, что и origin/xyzzy
, и вы удаляете origin/xyzzy
удалите также мой локальный xyzzy
. Более того, если у меня есть xyzzy
, но origin/xyzzy
не не не соответствует моему xyzzy
, жаловаться и останавливаться, чтобы я мог понять, что делать с это. Но у них нет такой возможности.)
1 sup> Технически, это тоже ваши. Просто ваш Git настроен так, что когда ваш Git вызывает свой Git - тот, что в origin
- и получает от них названия веток и хеш-идентификаторы, ваш Git перезаписывает свой собственный origin/master
с помощью их обновили master
. Таким образом, хотя origin/master
- это имя в базе данных «имя-хэш-идентификатор» вашего репозитория Git, это не то имя, которым вы обычно управляете сами. Вы просто позволяете своему Git отражать их Git, и их master
становятся вашими origin/master
.
Или, говоря короче: ваш мерзавец origin/master
- это способ помнить своего мерзавца master
. Так что это своего рода их.
Как уже сказал Торек , первым ключевым моментом является обрезка веток удаленного отслеживания , чтобы убедиться, что вы сравниваете со свежим списком ссылок. Вы можете использовать
git fetch --prune
, затем определить локальные «оставшиеся» ветви с помощью:
git for-each-ref --format='%(if)%(upstream:short)%(then)%(else)%(color:bold red)%(end)%(refname:short)' refs/heads
(они будут выделены красным на выходе) [118 ]
или альтернативно (при условии, что ваш пульт называется origin
):
git branch -vv | grep -v origin/
... и последний этап состоит в том, чтобы вручную удалить их с помощью
[113 ]Поскольку они отображаются просто под рукой, вы не должны страдать больше, чем за пару копий / вставок. Если число устаревших ветвей регулярно огромно или, скажем, достаточно важно, то может быть что-то в рабочем процессе можно было бы внедрить, чтобы избежать повторяющейся ситуации?