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

81

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

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

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

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

Михал Чаремза
источник
Мне было бы интересно узнать, каково решение для общего репозитория git, а не специально для GitHub.
Arj
1
@Arj У меня создалось впечатление, что форк - это концепция, специфичная для GitHub, поэтому я подозреваю, что решения нет, потому что нет никаких проблем!
Михал Чаремза,
Я не понимал, что это связано с GitHub, спасибо! Однако я использую Atlassian Stash, который также допускает вилки, поэтому я должен был использовать его общий. Я могу покопаться на их форумах.
Arj
2
Возможный дубликат GitHub: сделать форк «собственным проектом»
Иоаннис Филиппидис

Ответы:

23

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


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

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

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


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

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

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

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

Шаг за шагом:

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

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

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

ttimasdf
источник
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

dpoetzsch
источник