Git, удалив удаленную ветку, которая не находится в remotes / origin - PullRequest
3 голосов
/ 19 августа 2011

У меня была удаленная ветка с именем new_auth.Я хотел, чтобы новая удаленная ветвь отслеживала эту удаленную ветку, поэтому я сделал следующее:

git-remote add -t new_auth -m new_auth pivot git@github.com:myco/my_project.git/my_project

Теперь, когда я делаю ветку git -a, я вижу:

* master
  new_auth
  remotes/origin/HEAD -> origin/master
  remotes/origin/new_auth
  remotes/pivot/HEAD -> pivot/new_auth

IЯ хочу удалить этот пульт / pivot / HEAD -> pivot / new_auth.Я пробовал:

git push pivot :new_auth
git branch -rd pivot/new_auth
git remote rm pivot
git remote rm pivot/new_auth

Не повезло.Есть идеи?

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

Ваш remotes/pivot/HEAD был создан, потому что вы задали параметр -m для git remote add (команда не будет автоматически создавать symref, если вы опустите -m new_auth).

Создается аналогичный symrefкогда вы клонируете репозиторий.Если в удаленном репозитории есть HEAD ref / symref, ваш клон его будет иметь refs/remotes/origin/HEAD, указывающий на одну из веток удаленного отслеживания, соответствующую удаленной ветви, на которую указывает HEAD в удаленном репозитории.

Эти symrefs позволяют вам обращаться к «ветви по умолчанию» пульта, просто используя имя пульта (например, pivot «расширяет» 1 до refs/remotes/pivot/HEAD, что указывает на refs/remotes/pivot/new_auth).

Вы можете удалить symref с помощью этой команды:

git remote set-head pivot -d

1 См. Запись <refname> Указания ревизий в gitrevisions (7) .


В целом, я не совсем понимаю, чего вы пытались достичь с помощью команды git remote add.Если pivot и origin фактически указывают на один и тот же удаленный репозиторий (один и тот же «URL-адрес Git»), тогда дополнительный удаленный сервер не требуется.Если вы просто хотите, чтобы origin/new_auth был «восходящей» веткой для вашей локальной new_auth ветви, то вы можете сделать это с помощью

git branch --set-upstream new_auth origin/new_auth

(это также можно сделать с помощью git push -u, если вы ужеесть что-то готовое к пушу).После настройки восходящей ветви вы можете использовать git pull для автоматического извлечения из origin/new_auth, когда вы new_auth извлечены (вы также можете захотеть git config push.default upstream, чтобы git push только подтолкнул квосходящая ветвь вместо того, чтобы выдвигать все имена веток, которые существуют как в вашем локальном, так и в удаленном репозиториях).

0 голосов
/ 03 сентября 2011

Попробуйте это:

git push remotes/pivot/HEAD :new_auth

или

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