Как удалить зависающую фиксацию из GitHub?

17

Вчера я нажал на мою вилку ConnectBot на GitHub . Я толкнул один раз, понял, что я не сделал изменения так, как я хотел, переделал фиксацию и снова нажал.

Теперь GitHub имеет оба фиксации:

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

    
задан jnylen 06.12.2010 в 16:32
источник

2 ответа

14

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

Pulling должен генерировать пакет, содержащий только объекты, на которые ссылаются, поэтому никто не должен получать это сообщение в результате клонирования или pull. Например,

$ git clone git://github.com/nylen/connectbot.git
Cloning into connectbot...
remote: Counting objects: 6261, done.
remote: Compressing objects: 100% (1900/1900), done.
remote: Total 6261 (delta 3739), reused 5980 (delta 3520)
Receiving objects: 100% (6261/6261), 3.04 MiB | 3.40 MiB/s, done.
Resolving deltas: 100% (3739/3739), done.
$ git cat-file -t 1cd775d
fatal: Not a valid object name 1cd775d

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

    
ответ дан Emil Sit 06.12.2010 в 17:34
  • Через четыре года оба фиксации OP все еще доступны в Github. –  Raf 29.07.2014 в 11:23
  • Старая фиксация по-прежнему доступна SHA, но она не отображается в списке фиксации. –  Quantum7 28.01.2015 в 16:56
  • Какова основа для вас, говоря, что github будет периодически мусор собирать коммиты, на которые не ссылаются? Я слышал это раньше, но не могу найти ничего более достоверного, чем такие ответы. –  Ernest 23.04.2015 в 22:04
  • Вам необходимо обратиться в службу поддержки GitHub (как указано здесь), чтобы удалить кешированные коммиты, на которые больше не ссылаются. –  Jonathan Cross 15.11.2016 в 22:14
  • В моем случае я связался с github, и они ответили, что сказали, что они «очистили кеш на нашей стороне и запустили сбор мусора», и я смог подтвердить, что коммиты больше не доступны. –  haridsv 03.08.2017 в 13:13
Показать остальные комментарии
2

Удаление репозитория и его повторное создание без плохой фиксации, похоже, работают, если вы можете позволить себе потерять все проблемы. Данные также исчезают из API фиксации (хотя push-события все еще видны). См. Также: Ссылка

Кроме того, я связался с поддержкой и наблюдал из первых рук, что их способность удалять оборванные коммиты, когда я загрузил все сообщения GitHub на репо, и они попросили меня снять его: Ссылка

Их текущий страница справки говорит :

  

вы можете навсегда удалить все кэшированные представления вашего репозитория и вытащить запросы на GitHub, связавшись с поддержкой GitHub.

    
ответ дан Ciro Santilli 新疆改造中心 六四事件 法轮功 29.09.2015 в 11:24