Как уже упоминалось в Yoshua Уитс ' ответ , используя git branch
:
git branch --unset-upstream
Другие опции:
Вам не нужно удалять местное отделение.
Просто удалите локальную ветку, которая отслеживает удаленную ветку:
git branch -d -r origin/<remote branch name>
-r, --remotes
говорит git удалить ветку удаленного отслеживания (т.е. удалить ветку, установленную для отслеживания удаленной ветви). Это будет не удалить ветку на удаленный репозиторий !
Смотрите " Трудно понять git-fetch "
нет такой концепции локальных отслеживающих ветвей, только удаленные отслеживающие ветви.
Так origin/master
что это ветка удаленного отслеживания master
в origin
репо
Как уже упоминалось в DOBES Вэндермир «s ответ , также необходимо сбросить настройки , связанные с локальной ветви:
git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge
Удалите вышестоящую информацию для <branchname>
.
Если ветка не указана, по умолчанию используется текущая ветка.
(мерзавец 1.8+, октябрь 2012, совершить b84869e по Карлос Мартин Ньето ( carlosmn
) )
Это сделает любой push / pull совершенно неосведомленным origin/<remote branch name>
.
remote.<name>.fetch
параметр конфигурации refspec, но я не уверен, что вы можете исключить ветку при указании refspec.git branch -d -r origin/<remote branch name>
удалит удаленную ветку отслеживания, как объявлено локально , в вашем репо. Он не удалит ветку на самом удаленном репо (этоgit push :development
сделал бы только a ). Поэтому, когда вы продвигаете свой локальный журналdevelopment
с историей, отличной от удаленной ветки разработки (в удаленном репо), вы все равно получитеnon-fast-forward
предупреждение.Чтобы удалить восходящий поток для текущей ветви, выполните:
Это доступно для Git v.1.8.0 или новее. (Источники: 1.7.9 ref , 1.8.0 ref )
источник
источник
git branch --unset-upstream [branchname]
fatal: 'origin/master' does not appear to be a git repository fatal: Could not read from remote repository.
после этого и пробую git pull origin / masterЧтобы удалить связь между локальной и удаленной ветками, выполните:
При необходимости удалите локальную ветку, если она вам не нужна:
Это не удалит удаленную ветку.
источник
git branch -d <branch>
это не требуется , чтобы удалить связь.git branch -vv
вы все равно увидите старые ветви, пока не сделаетеgit branch -d <branch>
.git pull
может захватить все удаленные ветки и заново добавить все, что, по его мнению, «появилось» на пульте. Вы можете изменить это поведение "тянуть все ветви", выполнивgit config [--global] push.default simple
илиgit config [--global] push.default current
. Подробнееpush.default
здесь .Самый простой способ - отредактировать
.git/config
Вот пример файла
Удалить строку
merge = refs/heads/test1
в разделеtest1
веткиисточник
.git/config
тоже доступна.Вы можете удалить ветку удаленного отслеживания, используя
как VonC упоминает выше. Однако, если вы сохраните свою локальную копию ветки,
git push
вы все равно будете пытаться протолкнуть эту ветку (что может привести к ошибке, не связанной с перемоткой вперед, как это произошло с ruffin ). Это потому, что в конфигурации поpush.default
умолчанию указано следующееmatching
:(см. http://git-scm.com/docs/git-config в разделе
push.default
)Видя , как это, вероятно , не то , что вы хотите , когда вы удалили удаленное отслеживание ветви, вы можете установить
push.default
наupstream
(илиtracking
если у вас есть мерзавец <1.7.4.3)с помощью
и git прекратит попытки выдвинуть ветки, которые вы «перестали отслеживать».
Примечание: более простым решением было бы просто переименовать вашу локальную ветку в другое. Это также исключило бы некоторую вероятность путаницы.
источник
Вот одна строка для удаления всех ветвей удаленного отслеживания, соответствующих шаблону:
git branch -rd $(git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)
источник
git branch -r -D $(git branch -r | grep -v "master")
Это не ответ на вопрос, но я не мог понять, как получить достойное форматирование кода в комментарии выше ... так что мой комментарий - auto-down-reputation-be-damd
У меня есть рецепт, добавленный @Dobes в причудливую запись shmancy [alias] в моем .gitconfig:
Тогда я могу просто бежать
источник
git branch --unset-upstream
перестает отслеживать все местные филиалы, что нежелательно.Удалить
[branch "branch-name"]
раздел из.git/config
файла с последующимgit branch -D 'branch-name' && git branch -D -r 'origin/branch-name'
работает лучше для меня.
источник
Вы можете использовать этот способ, чтобы удалить удаленную ветку
источник
Самый простой способ сделать это - удалить ветку удаленно, а затем использовать:
git fetch --prune (также известный как git fetch -p)
источник