2017-02-20 32 views
2

Так что яGit обновить все местные отделения по стороне сервера

  • оттолкнули мою местного отделения на GitHub
  • запроса
  • создал Потянуть GitHub и
  • успешно слились и закрытым запрос тянущего и смотреть это ...
  • удален филиал на GitHub сайте с помощью кнопки

«Удалить ветвь» Теперь проблема, я не нашел то, что/как не делать дальше, и что бы я ни делал, мой местный филиал всегда есть. Итак,

Как включить git для зеркального отображения того, какие ветки есть на сервере, удаляя все ветви, которые больше не существуют. Или, если я должен сам это сделать, какие именно шаги мне нужно сделать? Благодарю.

ответ

1

Удалить ссылку на удаленный филиал, который уже удален на пульте дистанционного управления.

$ git remote prune origin 

Удалить местные отделения, которые объединены с текущей ветви

$ git branch --merged | grep -v '*' | xargs git branch -d 

Примечание: Если вы не на master то локальный/мастер может быть удален. Если вы хотите сохранить ветку master.

$ git branch --merged | grep -v "\*" | grep -Ev "(\*|master)" | xargs -n 1 git branch -d 
+0

Если вы можете, используйте скрипты 'git for-each-ref', а не' git branch'. Для этого случая ('--merged') вам нужна ваша версия Git как минимум 2.7.0. – torek

0

Если вы хотите точно так же на пульте дистанционного управления, то лучше снова clone. Но это не очень хороший способ.

Вы можете удалять свои местные отделения с помощью

git branch -D BRANCH_NAME 

Если вы хотите, чтобы получить объединенное отделение к локальной,

git pull origin BRANCH_NAME 
+0

Спасибо, «удалите локальные ветви *», ОК, но «* затем извлеките эту ветку с пульта дистанционного управления *», хм, почему? Удаленная ветка успешно удалена и больше не существует на удаленном сервере. Зачем нужен этот шаг? – xpt

+0

Я думал, что вы хотите снова взять это. Поэтому отредактирован ответ – DilumN