Можно ли удалить все коммиты из репозитория github? - PullRequest
0 голосов
/ 09 июля 2019

Я хотел бы вернуть репозиторий в его первоначальное состояние, чтобы он был таким же, как если бы я использовал кнопку «Создать новое репо» на Github, не содержащую коммитов. У меня нет прав на удаление репо и его воссоздание, есть ли другой способ сделать удаленное репо без коммитов после его однократного нажатия? Если я пытаюсь запустить пустое репо без коммитов, я получаю error: src refspec master does not match any..

1 Ответ

1 голос
/ 10 июля 2019

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

Если вам просто нужно удалить коммиты, вы можете сделать это, удалив все ссылки, выполнив команду, подобную этой:

git for-each-ref refs/heads/* refs/tags/* | awk '{print $3}' | xargs -L1 git push -d origin

Это попытается удалить все ссылки на сервере, которые у вас есть в вашей системе. Это не удастся для ссылки, использующей ветку по умолчанию, которая обычно master.

Затем удалите ветвь по умолчанию (в данном случае master) с помощью API (обратите внимание, что вместо текста TOKEN необходимо использовать личный токен доступа:

)
curl -v -u token:TOKEN https://api.github.com/repos/bk2204/test-repo/git/refs/heads/master

Вы должны заменить свой собственный репо вместо bk2204/test-repo. Это удалит последнюю оставшуюся ссылку, в результате чего вы не будете иметь никаких веток или тегов.

Обратите внимание, что в хранилище все еще будут ссылки на запросы извлечения, такие как refs/pull/1/head, которые вы не можете удалить. Если вам действительно нужно, чтобы все это ушло, вам придется начать все сначала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...