Безопасно ли очищать вышестоящие ветки в разветвленном репозитории?

Безопасно ли очищать вышестоящие ветки в разветвленном репозитории?

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

Например:

Репозиторий A имеет ветки A1,...,A1000. Когда я создаю форк этого репозитория в GitHub, я получаю новый репозиторий B с теми же ветками (A1,...,A1000). Я хотел бы, чтобы репозиторий B содержал только те ветки, над которыми я работаю (например, B1 и B2).

Возможно ли (и даже рекомендуется) удалить ветки upstream из моего форка, чтобы сделать все проще/чище для меня и моей команды (т. е. единственные ветки в нашем форке — это ветки, над которыми мы работаем)? Мне по крайней мере все еще нужна ветка по умолчанию из репозитория upstream?

решение1

Можно ли (и даже рекомендуется ли) удалить вышестоящие ветки из моего форка, чтобы упростить/упростить работу для меня и моей команды (т. е. единственные ветки в нашем форке — это те, над которыми мы работаем)?

Конечно, возможно, хотя и не обязательно, удалить ветки upstream из форка. Когда вы git cloneфоркаете репозиторий, он будет клонировать только ветку по умолчанию (если вы не укажете имя ветки, и он клонирует ее вместо этого). История других веток даже не будет существовать локально, если вы не укажете git fetchнужную вам конкретную ветку или git fetch --all.

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

В любом случае, команда удаления ветки на удаленном компьютере (при этом соответствующая ветка локально, если она существует, не удаляется) — git push origin :branchToBeDeleted.

Удаление локальной ветки (только в локальном репозитории, а не удаленной ветки) можно выполнить с помощью git branch -d branchToBeDeleted.

Более подробная информация об удалении локальных и удаленных филиалов здесь..


Мне по крайней мере все еще нужна ветка по умолчанию из вышестоящего репозитория?

Короче говоря, было бы целесообразно сохранить ветку по умолчанию. Я не думаю, что это gitпозволит вам удалить удаленную ветку по умолчанию с помощью синтаксиса, представленного выше (как кто-то пытался здесь):

remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'

Если ветка по умолчанию вам не нужна, перейдите в настройки этого репозитория на GitHub или на любой другой платформе хостинга Git, которую вы используете, и измените ветку по умолчанию, прежде чем пытаться удалить нужную ветку.

Связанный контент