Собирает ли мусор GitHub висячие коммиты, на которые ссылаются запросы на удаление?

Время от времени возникает следующая ситуация...

я git checkout -b experiment, внесите некоторые экспериментальные изменения и откройте запрос на извлечение. После некоторого обсуждения запрос на получение отклоняется.

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

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

1 ответ

Решение

Нет, они не будут gc's, потому что на них нет ссылок, даже если вы удалите свою ветку.

Github создает ветвь (фактически две) для каждого запроса на включение. Они находятся в пространстве имен не по умолчанию, поэтому вы обычно не получаете их, когда извлекаете (или извлекаете) из репо.

Чтобы увидеть, как это выглядит на практике, сделайте git ls-remote <REMOTE>, где <REMOTE> это либо имя удаленного (если оно известно вашему репозиторию), либо URL (не обязательно git remote addдля этого надо работать). Этот пульт должен иметь несколько запросов на получение, иначе вы не сможете понять, что я имею в виду.

Это будет список всех ссылок на удаленном (все ветви и теги), и вы увидите некоторые ссылки, такие как refs/pull/<number>/head а также refs/pull/<number>/merge, Те ссылаются на последний коммит в PR и коммит, на котором он был слит, соответственно.

Другие вопросы по тегам