Почему люди разветвляют репозитории на GitHub? [закрыто]


110

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

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


84
они хотят гарантировать, что у них есть стабильная резервная копия, если владелец проекта удалит свои репозитории и исчезнет
ratchet freak

9
Просто потому, что именно так работают запросы на получение в GitHub (и потому, что люди немного недовольны и иногда забывают об этом, или отказываются от идеи своего проекта и забывают избавиться от форка)
haylem

2
просто комментарий, насколько я понимаю, они используют в качестве «резервной копии» кода, но они забывают (или не знают), что обновления хранилища не влияют на «вилки», когда они должны делать правильный форк (для резервного копирования) и «Поместить» в репозиторий, чтобы знать, когда нужно выполнить «повторную форк», другими словами, они считают, что «форк» - это почти то же самое, что и «Звездный», и неосведомленный поддерживает устаревший код.
Гильерме Насименто

1
Потому что они слышали, что наличия Github достаточно, чтобы получить работу в горячем стартапе.
Гай

1
Вот пост о вреде беспричинного разветвления zbowling.github.io/blog/2011/11/25/github
gavenkoa

Ответы:


69

В нашей работе мы склонны искать технические причины, но, на мой взгляд, основная причина не техническая. Если вы посмотрите справку GitHub или другие учебные пособия по GitHub, разветвление репо является одним из основных шагов для того, как вы «делаете» GitHub.

Когда люди изучают и оценивают GitHub, практически каждый учебник говорит им, чтобы они организовали репо как часть этого процесса обучения. Поскольку основная цель GitHub - внести свой вклад, многие люди, работающие через стандартные учебные пособия, не понимают, что если вы просто хотите получить клон только для чтения, вам не нужно сначала делать разветвление.


42
По нетехническим причинам: я несколько раз нажимал на кнопку «форк», надеясь увидеть, кто разветвлял репо, и обнаружил, что разветвил его. По электронной почте Ой! Не уверен, что другие сделали то же самое.
gdw2

53
@gdw: заставляя вас воскликнуть: «О, вилка!»
Бен Джексон

1
Я помню , когда я впервые узнал о мерзавца и Github, я сделал некоторые Разветвляющихся только потому , что руководства и учебники , казалось бы предложить это как на способ получить свою собственную копию кода на вашем компьютере.
rmac

Мы используем GitLab на работе, поэтому я хорошо знаю разницу между клоном и форком. Я также придерживаюсь мнения, что вам не нужно форкать, если вы не хотите выдавать запрос pull (merge for GitLab).
cst1992

3
@ Да, это нормально, но обычно в этом нет необходимости. Компания может сделать это для кода, от которого зависит, чтобы убедиться, что оригинал не исчезнет. Если все, что вы хотите сделать, это собрать из исходного кода, клон проще.
Карл Билефельдт,

101

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

В разветвленном хранилище у них есть права на запись и они могут вносить изменения. Они могут даже внести свой вклад в исходное хранилище, используя запросы на извлечение .

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

  • они могут раскошелиться на репозиторий, который выглядит круто, просто раскошелиться (потому что это легко (всего один клик)) и захотеть внести изменения позже (а потом, вероятно, забыть об этом / не успел это сделать)
  • они разветвляют репозиторий для внесения изменений, а затем обнаруживают, что изменения не нужны, и забывают удалить собственный репозиторий.
  • они могут раскошелиться на репозиторий, потому что один из проектов зависит от другого репозитория (возможно, через подмодули), и они хотят полного контроля над репозиторием, используемым в качестве зависимости (владельцы исходного репозитория могут решить перейти с github на код Google и т. д. )
  • они могут просто забыть подтолкнуть коммиты

5
Когда вы не используете Github, вы идете по старому пути и создаете локальную клонированную копию проекта, чтобы вы могли изменить ее. Разветвление на GitHub дает вам доступ к запросам по запросу, которые предпочитают многие проекты. Если вы работаете в другом проекте, вы в конечном итоге создадите исправления и отправите их на рассмотрение.
Рудольф Олах

Это простой одношаговый процесс для настройки удаленной ветки отслеживания. Любой, кто пытался внести свой вклад в репозиторий git за пределами GitHub, знает, насколько это утомительно. Кроме того, если первоначальный автор использует AFK, вы можете следить за графиком разработки, чтобы найти вилки, которые все еще активно разрабатываются. Надеемся, что он не даст GitHub выродиться в пустую землю мертвых проектов, как это сделал SourceForge.
Эван Плейс,

Что делать, если вы разветвляете проект, но не вносите изменений. Будет ли это считать незаконным?
Джесси

@Jesse Все общедоступные репозитории на GitHub должны иметь лицензию с открытым исходным кодом (то есть их Условия обслуживания), и, следовательно, это не проблема вообще. Особенно, когда вы не вносите изменений.
MarcDefiant

28

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


3
Они могут исправить, чтобы зафиксировать номер или опубликованную версию релизной версии приложения.
Роман М. Косс,

26

Весь смысл Github - «социальное кодирование» .

Лично я разветвляю репозитории, когда:

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

Теперь я слышал о людях, собирающих марки и ракушки, но зачем кому-то собирать репозитории?

Почему нет?

Нет ничего (о чем я могу подумать), которое могло бы пойти не так, если бы я разбудил репозитории для личного удовольствия. Честно говоря, я храню папку интересных проектов, которые я вижу на Github и в других местах просто для вдохновляющих целей, и отчасти потому, что я гик. Я понимаю, что мне не нужно разбирать проект, чтобы прочитать код, но я, возможно, на самом деле захочу отредактировать его в будущем.

Теперь начните разветвляться.


9
+1 за "почему бы и нет?" раздел.
Llepwryd

Мои дополнительные 2 цента на "Почему нет?" раздел: моя привычка всегда делать "толчок мерзавца" после того, как я закончил работу над функцией; у меня это QED удовлетворительное чувство (которого я не получаю, когда пишу имя пульта и филиала). Поэтому, когда есть хоть малейший шанс, что я захочу внести изменения в репо, я бы предпочел его разветвить, вместо того, чтобы позже менять репо по умолчанию «оригинал».
yoniLavi

1
Я думаю "почему бы и нет?" В разделе описывается, как работает «Звезда» ...
TWiStErRob

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

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

1

Я раскладываю множество репозиториев, в которых я могу захотеть использовать код, или, если это проект, который меня интересует. Когда я захочу вернуться и еще раз взглянуть на код позже, проще будет найти его в списке под моим хранилища. Мне не нужно гуглить или суетиться, пытаясь вспомнить, какое именно имя было, или думать: «где я снова увидел этот репо с foo?» Если это среди моих репозиториев, мне легче напомнить об этих вещах.


Обратите внимание, вы можете получить то же самое, сыграв в репо - нет необходимости для этого.
Валиано
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.