2013-07-29 2 views
15

Это не вопрос о как восстановить утраченные филиалы в Github, а то, как долго вы должны восстановить удаленную ветку через следующий случай пользователя историю:Как долго вы можете восстановить/восстановить удаленную ветку на GitHub?

В рамках запроса нагрузочного (часто используются в качестве места для проверки кода) ветвь может быть объединена, а затем удалена, все в графическом интерфейсе github. Если вы решите удалить его, вам предоставляется опция с жирным и подчеркнутым словом, чтобы «восстановить» ветвь.

Я подозреваю, что этот параметр имеет ограничение по времени и что github не позволяет использовать его неограниченно.

Имеет ли github ограничение времени на то, как долго вы можете это сделать? Если да, то какой это срок?

ответ

21

GitHub Support Я спросил, что это их ответ (курсив мой):

Мы используем отдельное пространство имен реф для всех запросов притягивания, которые мы используем для различных вещей, включая восстановление отрасли. Поскольку мы сохраняем эти [Pull Request] refs неограниченно, нет ограничений по восстановлению филиала.

Вы можете увидеть эти специальные ссылки на пульте дистанционного управления, с помощью следующих действий:

$ git ls-remote | grep pull 
From [email protected]:<username>/<remote>.git 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  refs/pull/1/head 
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb  refs/pull/1/merge 
cccccccccccccccccccccccccccccccccccccccc  refs/pull/2/head 
dddddddddddddddddddddddddddddddddddddddd  refs/pull/2/merge 

Ссылки на литературу в пространстве имен под refs/pull/<pull request number>/. Контрольные точки head на кончике ответвления, которые запрашиваются, т. Е. Последний фиксатор на ветке.Я не уверен, что ссылка merge.

2

Поддержка GitHub будет иметь окончательный ответ, но я подозреваю, что она основана на 90-дневном периоде по умолчанию перед автоматической очисткой the reflog.

gc.<pattern>.reflogexpire 

git reflog истекают удаляет reflog записи старше этого времени; по умолчанию - 90 дней.
С "<pattern>" (например, "refs/stash") в середине настройки применяются только к refs, которые соответствуют <pattern>.

Но ... у вас локальную копию с этой отрасли по-прежнему объявлена ​​в нем ... ничто не помешает вам нажать указанную ветку обратно на GitHub репо;)

Cupcake «s answer (upvoted) дают, что поддержка ответ: нет предела, что означает, что эти два settings are both set to never:

  • gc.reflogexpire
  • gc.reflogexpireunreachable

Это имеет смысл для службы репо-репозитория, которая не модифицирует эти репозитории локально и сохраняет только изменения, внесенные из внешних источников.

2

Обратите внимание, что некоторые страницы запроса тяги на GitHub не показывают кнопки «Отменить/Восстановить ветвь», даже если ссылки сохранены в памяти as described by Cupcake.

Это, вероятно, означает, что одна и та же ветвь использовалась снова в более позднем запросе на растяжение. Найдите репо (в GitHub) для имени филиала и проверьте последний запрос на тяну на этой ветке. Вы должны найти пользовательский интерфейс для восстановления (или удаления) ветки там.

Смежные вопросы