GitHub: зробіть вилку "власним проектом"


118

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

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

Я все ще пропоную свої внески до оригінального проекту, але я бачу, що навряд чи вони колись приймуться. Тепер я хотів би зробити свою вилку "справжнім проектом". Хоча я планую синхронізувати з оригінальним проектом у певний момент часу, я хочу перейменувати його та мотивувати людей також долучитися до мого проекту. Крім того, я хотів би, якби GitHub показав, що цей проект активно підтримується (кажучи про карту фіксування). І нарешті, я хотів би зробити належні випуски цього.

Як я можу це зробити і добре, щоб зробити вилку повноцінним проектом?


Я розгублений, можливо, все змінилося з 2014 року, але мій проект TightBlog вказаний як вилка Apache Roller у верхньому лівому куті: github.com/gmazza/tightblog , але я отримую повний кредит на всі мої проблеми , PR та ін., Хоча жодна робота не застосовується до основного проекту Apache Roller, а лише до моєї вилки: ( github.com/gmazza?tab=overview&period=monthly ). Я не впевнений, що виграєте, зробивши вилку вже самостійним проектом.
Глен Мацца

Відповіді:


75

Щоб від'єднати вилку та перетворити її у окремий сховище на GitHub, зверніться у службу підтримки GitHub .

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


9
Крім того, це дозволить утримати зірочок, спостерігачів та мережу вилок. На відміну від створення нового репо з нуля.
Джонко

1
Варто відзначити, що підтримка GitHub надала мені можливість змінити вигляд дочірніх виделок або зберігати їх у власному сховищі.
gmarmstrong

41

Для цього вам потрібно скопіювати сховище . Коротка версія:

  1. Створіть новий репозиторій на GitHub.
  2. Клоніруйте роздрібний сховище, яке ви хочете відключити від його батьківського.
  3. Перемістіть усі гілки цього клону до нового сховища.

Якщо ви хочете, щоб ваш сховище все ще мав те саме ім’я, ви, ймовірно, можете клонувати репо, видалити його на GitHub, створити новий проект з тим же ім’ям і натиснути все.
Rory O'Kane

12
Схоже, що запити на притягнення до GitHub можуть бути лише через вилки GitHub проекту. Отже, якщо ви дублюєте ваше сховище, ви не можете робити запити на витяг з нового сховища. І якщо ви видалите і заміните старе сховище, всі ваші існуючі запити на виклик, ймовірно, будуть закриті, оскільки GitHub вважає, що код видалено, і ви не зможете робити нові запити на витяг.
Rory O'Kane

9
Тому що це може призвести до введення людей в оману, щоб робити непотрібні дії. Натомість слід прийняти відповідь Олега: шлях - це зв’язатися зі службою підтримки GitHub. На те, щоб перетворити мою вилку в окрему репо, пішло менше години.
Георгій Іванкін

5

Це дуже просто:

  1. Клонування в де - то репо: git clone git@github.com:USERNAME/REPOSITORY.git(зробіть подвійний впевнений , що ви його клонували)
  2. Видаліть репо в GitHub (Налаштування> Опції> Видалити це сховище)
  3. Створіть нове порожнє репо в GitHub
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(якщо ви використовували те саме ім'я для репо, то NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(Я використовую ssh, але якщо ви використовуєте https, ваші URL-адреси github будуть виглядати https://github.com/USERNAME/REPOSITORY.git)


1

Спочатку слід перевірити, чи дозволяє ця ліцензія робити це, загалом кажучи, Open Source змушує вас це робити, оскільки мова йде про еволюцію програмного забезпечення без ланцюгів. Якщо так, то просто створіть нове репо. Не забудьте кредитувати оригінальних авторів та розпочати проект.


3
Це ліцензія на MIT, і так, я планую видавати кредити як завжди. Насправді я вважав за краще, якби оригінальний автор просто прийняв мій код (або сказав мені, чому він цього не робить)
Крістіан

1
Якщо ліцензія не дозволяє створити сховище, яке не є вилкою GitHub оригіналу, проект в першу чергу не повинен бути публічним проектом GitHub, оскільки публічні проекти повинні бути випущені під ліцензією з відкритим кодом. . Я не можу придумати жодної ліцензії з відкритим кодом, яка забороняє робити копії коду. Ось така вся точка відкритого коду. (Звичайно, можуть бути вимоги до атрибуції - але їх можна задовольнити, якщо проект не є "належним" вилкою GitHub.)
cdhowie

Автор , звичайно , повинні зробити свій проект вільного програмного забезпечення, але якщо вони цього не роблять (наприклад, якщо немає ліцензії), то проект є невільною: stackoverflow.com/a/16934573/6791398
gmarmstrong
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.