Разверните вилку Github без удаления


81

Я хотел бы "развернуть" вилку GitHub, не удаляя и не создавая заново. Это возможно?

Моя причина в том, что мой проект теперь имеет совершенно другое использование, чем источник вилки, и не имеет смысла показывать количество коммитов впереди или кнопку запроса на вытягивание (или, по крайней мере, с такой заметностью). Оглядываясь назад, я думаю, что я бы просто git cloneкупил оригинал, а не сделал вилку.

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

Я с удовольствием сохраняю историю коммитов, мне нужно просто удаление статуса форка.


Мне было бы интересно узнать, каково решение для общего репозитория git, а не специально для GitHub.
— Arj

1
@Arj У меня создалось впечатление, что форк - это концепция, специфичная для GitHub, поэтому я подозреваю, что решения нет, потому что нет никаких проблем!
— Михал Чаремза,

Я не понимал, что это связано с GitHub, спасибо! Однако я использую Atlassian Stash, который также допускает вилки, поэтому я должен был использовать его общий. Я могу покопаться на их форумах.
— Arj

Ответы:


23

Я помню, как читал об этом почти год назад на одной из страниц справки GitHub. Они упомянули, что нужно связаться с персоналом GitHub и объяснить вашу ситуацию. Персонал сделает все необходимое.


РЕДАКТИРОВАТЬ

После просмотра списка страниц GitHub я вижу, что меня немного не интересует реальная задача. Я вспомнил страницу « Перенос репозитория» ; в частности:

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


Тем не менее, стоит обратиться к персоналу с вашей конкретной проблемой и попросить их отделить ваш форк от сети.


10
Я связался с сотрудниками github.com/contact , объяснил свою ситуацию, и теперь они ее отменили. Или, если использовать их термин, «извлеченный в собственную вилочную сеть». Благодаря!
— Михал Чаремза,

66

На, на. Github намного мощнее, чем вы думаете.

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

Шаг за шагом:

  • Нажмите «+» в правом верхнем углу и выберите «Импортировать репозиторий».
  • Вставьте старый URL-адрес репо (например, https://github.com/user/repo ) и введите новое имя.
  • Нажмите "Начать импорт".

Готово. Github даже отправит вам уведомление по электронной почте, когда copy'n'paste будет завершен.

Проверено на совместимость с моим собственным проектом. Хорошая особенность, не правда ли?


3
Принесет ли это тоже проблемы?
— Крис

1
@ChrisAnderson Я не пробовал, но, наверное, нет. Поскольку он принимает любой действительный URL-адрес git, я думаю, он почти что-то делает git clone --bare.
— ttimasdf

2
+1 Это должен быть принятый ответ. Таким образом, вам нужно только переименовать свой разветвленный репозиторий и импортировать в новый репозиторий с исходным именем.
— qsp

48

Этот метод создаст новый «незакрытый» репозиторий с сохранением всего остального (истории коммитов, веток и тегов).

Как «развернуть» проект за четыре простых шага:

  1. git clone --bare https://github.com/{username}/{repository}
  2. Удалите исходный репозиторий в https://github.com/{username}/{repository}/ settings.
  3. Создайте новый репозиторий с именем {repository}на https://github.com/new .
  4. cd {repository}.git и git push --mirror https://github.com/{username}/{repository}

И готово!


Также должен быть пункт «2.5. Создать новый репозиторий со старым именем». - в противном случае push говоритremote: Repository not found.
— BartBiczBoy

4
К счастью, OP упомянул: «Я бы не хотел удалять свою вилку, чтобы сохранить проблемы + историю сделанных запросов на вытягивание».
— Арчесилас,

Он не поддерживает запросы на вытягивание. Есть ли способ поддерживать запросы на включение во время разветвления?
— user1858796

Вам также нужно будет воссоздать все секреты github.com {имя пользователя} / {репозиторий} / настройки / секреты
— rectalogic

21

В официальной документации github я нашел следующее:

Чтобы отсоединить вилку и превратить ее в автономный репозиторий на GitHub, обратитесь в службу поддержки GitHub . Если у вилки есть собственные вилки, сообщите в службу поддержки, должны ли вилки перемещаться вместе с вашим репозиторием в новую сеть или оставаться в текущей сети. Для получения дополнительной информации см. « О вилках ».

из https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.