GitHub: сделайте вилку «собственным проектом»

118

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

Тем не менее, я видел, что мои взносы не учитываются в моей карте фиксации. Это так до тех пор, пока исходный репозиторий не принимает мои материалы. Более того, моя работа признается только как работа и не привлекает других людей с таким же видением, как у меня. Для меня это большая проблема, потому что я вижу, что многие люди просят об этих функциях.

Я все еще предлагаю свой вклад в первоначальный проект, но вижу, что вряд ли они когда-либо будут приняты. Теперь я хочу сделать свой форк «настоящим проектом». Хотя я планирую синхронизировать с исходным проектом в определенные моменты времени, я хочу переименовать его и мотивировать людей также вносить свой вклад в мой проект. Кроме того, мне бы хотелось, чтобы GitHub показал, что этот проект активно поддерживается (говоря о карте фиксации). И, наконец, я бы с удовольствием выпустил ее надлежащие релизы.

Как я могу это сделать и сделать мой форк полноценным проектом?

Кристиан
источник
Я сбит с толку, может быть, с 2014 года что-то изменилось, но мой проект TightBlog указан как ответвление Apache Roller в верхнем левом углу: github.com/gmazza/tightblog , но я получаю полное признание за все свои проблемы , PR и т.д., хотя никакая работа не применяется к основному проекту Apache Roller, а только к моей вилке: ( github.com/gmazza?tab=overview&period=monthly ). Я не уверен, что можно получить, сделав вилку отдельным проектом.
Glen Mazza

Ответы:

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
Кроме того, это сохранит звездочётов, наблюдателей и сеть вилок. В отличие от создания нового репо с нуля.
Johnco
1
Стоит отметить, что служба поддержки GitHub предоставила мне выбор: переродить дочерние форки или оставить их прикрепленными к моему собственному репозиторию.
gmarmstrong 08
41

Для этого вам необходимо продублировать репозиторий . Краткая версия:

  1. Создайте новый репозиторий на GitHub.
  2. Клонируйте разветвленный репозиторий, который вы хотите отделить от его родительского.
  3. Отправьте все ветки в этом клоне в новый репозиторий.
cdhowie
источник
Если вы хотите, чтобы ваш репозиторий имел то же имя, вы, вероятно, можете клонировать свое репо, удалить его на GitHub, создать новый проект с тем же именем и отправить все.
Рори О'Кейн,
12
Похоже, что запросы на вытягивание GitHub могут быть только через вилки GitHub проекта. Поэтому, если вы дублируете свой репозиторий, вы не сможете делать запросы на вытягивание из нового репозитория. И если вы удалите и замените свой старый репозиторий, все ваши существующие запросы на вытягивание, вероятно, будут закрыты, потому что GitHub сочтет, что код был удален, и вы не сможете создавать новые запросы на вытягивание.
Рори О'Кейн
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)

Gerbus
источник
1

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

jethroo
источник
3
Он лицензирован MIT, и да, я планирую давать кредиты, как обычно. На самом деле, я бы предпочел, чтобы первоначальный автор просто принял мой код (или сказал мне, почему он этого не сделал)
Кристиан,
1
Если лицензия не позволяет вам создать репозиторий, который не является вилкой GitHub оригинала, тогда проект не должен быть общедоступным проектом GitHub в первую очередь, поскольку общедоступные проекты должны выпускаться под лицензией с открытым исходным кодом. , Я не могу вспомнить ни одной лицензии с открытым исходным кодом, запрещающей копирование кода. В этом вся суть открытого исходного кода. (Конечно, могут быть требования к атрибуции, но они могут быть выполнены, если проект не является «правильным» форком GitHub.)
cdhowie
Автор, безусловно, должен сделать свой проект свободным ПО, но если они этого не сделают (например, если нет лицензии), то проект несвободный: stackoverflow.com/a/16934573/6791398
gmarmstrong