Розпакуйте вилку 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.