Сделать старые ветки git невидимыми, не сделав их недоступными? - PullRequest
9 голосов
/ 03 марта 2011

Есть ли способ сделать так, чтобы ветка git перестала отображаться, когда вы вводите "git branch", но все еще остается доступной в истории, то есть через gitk? У меня есть много старых веток, которые я хочу скрыть из виду, но я не вижу причин удалять историю даже из тупиков развития в мире с терабайтными жесткими дисками.

Теги могут быть близки к тому, что я ищу, но я не хочу называть мои тупики помимо их сообщения о коммите. Кроме того, я хочу зарезервировать теги для особенно хороших моментов в истории основной разработки.

Ответы [ 3 ]

6 голосов
/ 03 марта 2011

Вы можете создать собственное пространство имен внутри refs/, например refs/historic/foo, вручную, используя команду update-ref (а затем удаляя ветвь).

Некоторые предостережения этого подхода:

  • Они не отображаются в git branch, но отображаются в git log --decorate и gitk без каких-либо дополнительных опций, и вы можете использовать git show-ref для отображения всех ссылок.
  • Они не выбираются автоматически, поэтому, если вы хотите, чтобы они транспортировались, вам придется использовать ls-remote и fetch их вручную.

Тем не менее, это кажется хорошим способом архивирования ветви, так как она появляется при просмотре истории, может быть явно перечислена и не загромождает пространство имен ветви или тега.

4 голосов
/ 03 марта 2011

Переместите старые ветки в удаленный репозиторий на одном из многочисленных бесплатных сайтов Git-хостинга.

0 голосов
/ 03 марта 2011

идентификаторы редакции git (почти) уникальны. Если вы хотите, чтобы старые ветви оставались доступными, просто не собирайте их; вы всегда можете вернуть их обратно, непосредственно проверив их номер редакции. Это потребует настройки .git/config вашего хранилища, чтобы git gc не удалял ревизии, более недоступные непосредственно из HEAD любой ветви.

...