Должен ли я хранить свои раздвоенные репозитории на GitHub?

314

Поэтому я разбудил чей-то репозиторий, сделал несколько изменений, отправил запрос на извлечение, и мои изменения внесли его в продукт. Большой!

Но ... что мне делать с моим раздвоенным хранилищем? Есть ли у меня веские основания держать свой репозиторий рядом или я должен удалить его? Я не планирую делать какие-либо дополнительные вклады, но если я передумаю, я предполагаю, что я всегда могу просто перенастроить его.

Я не очень беспокоюсь о сохранении резервной копии. Я больше беспокоюсь о взломе ссылок, потере коммитов и т. Д.

Брант Бобби
источник
80
Пожалуйста, удалите его, или у github закончатся хэши.
Арманд
3
дубликат кода это зло. И это также выходит за пределы мерзавца.
Stijn
7
@stijn - я читаю это больше как «резервная копия», чем «дубликат». И я не думаю, что я когда-либо слышал, чтобы кто-то утверждал, что резервный код является злом ...
Beekguk
3
Удалите это. В конце концов, вы всегда можете загрузить последнее состояние (с которого вы все равно хотите продолжить работу) из репозитория проекта.
Ладья
Что произойдет, если исходное хранилище будет удалено и ни у кого не останется вилок? Как восстановить доступ к репо / форку в таком случае?
Кромстер

Ответы:

40

Удаление разветвленных репозиториев приведет к удалению истории из ваших запросов на извлечение.

PR с неизвестным хранилищем

Удаление разветвленного репозитория приведет к удалению любой информации, связанной с вашим репозиторием. Это может задним числом повлиять на любые ссылки на ваш репозиторий, включая запросы на извлечение, которые уже были объединены. (См. Запрос Pull отображает «неизвестный репо» после удаления форка )

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

Однако удаление старых веток после слияния совершенно безопасно.

Хотя следует избегать удаления репозиториев, удаление неиспользуемых веток вполне допустимо. На самом деле, GitHub рекомендует вам удалить старые ветви .

Приведение в порядок после запросов Pull

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

Начиная с сегодняшнего дня, после объединения запроса на извлечение вы увидите кнопку для удаления устаревшей ветви:

Удалить эту ветку кнопку

Если запрос на извлечение был закрыт без слияния, кнопка будет выглядеть немного иначе, чтобы предупредить вас об удалении необъединенных коммитов:

Удалить ветку с предупреждением

Конечно, вы можете удалять ветки только в тех репозиториях, к которым у вас есть push-доступ.

Наслаждайтесь вашими аккуратными репозиториями!

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

Смотрите также

Stevoisiak
источник
1
Что именно происходит с необработанными закрытыми запросами на удаление, когда вы удаляете их ветку (второй случай в цитируемой статье)? Будут ли коммиты по-прежнему доступны в запросе на извлечение, только без их истории, или они полностью исчезнут?
опечатка
207

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

  1. Удаление ничего не вредит.
  2. Вы всегда можете повторить, если вам нужно
  3. Это сокращает бесполезные репо в результатах поиска, когда люди ищут что-то
  4. Если вы используете свой GitHub в качестве своего рода резюме для потенциальных вакансий / контрактов, это выглядит лучше, если у вас нет десятков разветвленных репо, над которыми вы сейчас не работаете. Вы будете казаться более эффективным.
  5. Это помогает вашему здравомыслию, когда вам не нужно пролистывать сотни бесполезных репозиториев.
  6. Это лучше для GitHub. :)
tharris
источник
50
Единственным недостатком этого является то, что в запросе на получение выдается «объединенный коммит <commit> в <repo>from unknown repositoryon <дата>», что немного странно.
PLPeeters
18
@PLPeeters, на самом деле это довольно большой недостаток.
Pacerier
4
Я предлагаю использовать remove-github-forks«Удалить все вилки, которые не имеют коммитов, которых нет в основном репозитории». Работает как шарм.
Фреганте
3
@ SteveMoser Я могу ошибаться, но я думаю, что вы все еще сохраняете список «Репозитории, в которые вы добавили». У меня был один, между которым я удалил все связи, и он все равно остался там, но, возможно, был случайностью: P
Марк Писак - Trilon.io
17
Я рискнул и удалил разветвленный репозиторий, и на мой список участников это не повлияло, поэтому я могу с уверенностью сказать, что удаление разветвленного репо не повлияет на ваши вклады
Амин Мохамед Аджани
76

Вы можете удалить свой ответвление, как только отправите запрос на извлечение , независимо от того, объединен он или нет. GitHub хранит все PR в репозитории upstream , что означает, что предлагаемые изменения отслеживаются, даже если ветвь удалена.

Это упрощает решение.

Вы все еще можете оставить вилку, если:

  • Вы будете вносить больший вклад прямо сейчас (например, расширить существующий PR или открыть новые PR)

Вы можете удалить вилку, если:

  • Вы хотите чистый портфель проектов под вашим именем
Деннис
источник
7
«Вы можете удалить свою вилку, как только отправите запрос на извлечение» Это то, что я искал!
Unnawut
Я тоже, но ответ начинается с "Если ваш запрос на получение ответа был принят ..." Вы пробовали это: D
Legends
4
Предупреждение . При удалении ветки исходное имя ветки удаляется из всех ожидающих запросов на извлечение. ( Stevoisiak хочет объединить 1 коммит Drugoy:masterсunknown repository )
Stevoisiak
20

Я бы, вероятно, tar / gzip и поместил в архив dir, а затем удалить его через 3 года. ;) Честно говоря, если вы не собираетесь работать над этим снова в течение следующих нескольких месяцев и не использовали его в течение некоторого времени, я думаю, было бы безопасно удалить его.

Захари К
источник
9

Просто чтобы добавить к предоставленным ответам - GitHub сам рекомендует удалять («убирать») разветвленные репозитории после их слияния.

Это можно сделать прямо в запросе на включение после слияния - см. Этот пост в блоге .

Кроме того, на данный момент я не вижу никаких замечаний в комментариях:

  • даже после удаления разветвленного репозитория в запросе на извлечение есть правильное сообщение (нет «неизвестного репозитория»)
  • репозиторий, в который вы добавили, все еще указан в вашей активности
  • вы все еще перечислены в авторах этого хранилища

Я бы не рекомендовал удалять его перед слиянием, как это было предложено @Dennis, поскольку вам, возможно, все же придется внести некоторые изменения в код по запросу авторов.

Мариус Балчитис
источник
2
Я только что удалил разветвленный репозиторий, и теперь в запросе на выгрузку говорится unknown repository. Ну что ж.
Красси
10
Ваша ссылка ведет на статью, объясняющую, как удалить ветку после успешного слияния PR; этот вопрос, однако, задает вопрос об удалении хранилища . Вы будете наблюдать «неизвестное хранилище», только когда удаляете свою собственную ветку проекта ( хранилище ).
stakx
2
Вопрос в том, чтобы удалить ветку, а не ветку.
Энди