Розпакуйте вилку Github, не видаляючи


80

Я хотів би «розпакувати» форк GitHub, не видаляючи + відтворюючи його. Чи можливо це?

Моя причина полягає в тому, що мій проект зараз має зовсім інше використання для джерела форка, і не має сенсу показувати кількість комітів вперед або кнопку запиту на витягування (або, принаймні, з такою популярністю). З огляду на минуле, я думаю, що я б просто git cloneрозробив оригінал, а не зробив виделку.

Я б не хотів видаляти свою форку, щоб зберегти проблеми + історію зроблених запитів на витягування.

Я із задоволенням зберігаю історію комітів, я просто шукаю статус видалення форка.


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

1
@Arj У мене склалося враження, що форк - це концепція, специфічна для GitHub, тому я підозрюю, що рішення не існує, тому що проблеми немає!
— Michal Charemza

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

Відповіді:


23

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


РЕДАГУВАТИ

Переглянувши список сторінок GitHub, я бачу, що мені було трохи невдало щодо фактичного завдання. Сторінка, яку я запам’ятав, - це Перенесення сховища ; зокрема:

Якщо передане сховище має будь-які форки , тоді ці форки асоціюються з новим сховищем після завершення передачі. Майте на увазі, що користувачам, які розгалужили ваше сховище, доведеться оновити свої віддалені URL-адреси, щоб вказувати на нове сховище Git, щоб продовжувати відкривати запити на витягування.


Все-таки варто зв’язатися з персоналом з конкретною проблемою та попросити їх відокремити вашу форку від мережі.


10
Я зв’язався зі співробітниками за адресою github.com/contact , пояснив свою ситуацію, і зараз вони розгадали це. Або, використовуючи їхній термін, "витягнутий у власну мережу вилок". Дякую!
— Michal Charemza

66

На, на. Github набагато потужніший, ніж ви думаєте.

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

Крок за кроком:

  • Клацніть на "+" у верхньому правому куті, виберіть "Імпортувати сховище"
  • Вставте стару URL-адресу репо (наприклад, https://github.com/user/repo ) і введіть нову назву.
  • Натисніть "Почати імпорт"

Готово. Github навіть надішле вам повідомлення електронною поштою, коли copy'n'paste буде зроблено.

Випробувано на роботу проти власного проекту. Хороша особливість, чи не так?


3
Це також спричинить проблеми?
— chris

1
@ChrisAnderson Я не пробував, але, мабуть, ні. Оскільки він приймає будь-яку дійсну 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. Створити нове сховище зі старим ім'ям". - інакше натискання повідомляєremote: Repository not found.
— BartBiczBoży

4
На щастя, OP згадав: "Я б не хотів видаляти свою форку, щоб зберегти проблеми + історію зроблених запитів на витягування".
— Арцесілас

Він не підтримує запит на витягування. Чи є спосіб підтримувати запити на витягування під час розпакування?
— user1858796

Вам також потрібно буде відтворити будь-які секрети github.com {ім'я користувача} / {сховище} / settings / secrets
— 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.