Я хотел бы знать разницу между выполнением Fork проекта и clone
его выполнением.
Могу ли я отправлять пул-запросы только через GitHub, если я разбудил проект?
Я хотел бы знать разницу между выполнением Fork проекта и clone
его выполнением.
Могу ли я отправлять пул-запросы только через GitHub, если я разбудил проект?
Ответы:
В основном да. A fork
- это просто запрос GitHub клонировать проект и зарегистрировать его под своим именем пользователя ; GitHub также отслеживает отношения между двумя репозиториями, так что вы можете визуализировать фиксации и извлечения между двумя проектами (и другими форками).
Вы по-прежнему можете попросить людей извлечь из вашего клонированного репозитория, даже если вы не используете его, fork
но вам придется самостоятельно сделать его общедоступным. Или отправьте разработчикам исправления (см. git format-patch
), Которые они могут применить к своим деревьям.
git pull
. Вилка принимает несколько команд. И не удивительно, что почти каждая вилка, на которую я смотрю, устарела. Вилы похожи на проблему хранилища Maven на стероидах. Вместо одного устаревшего репо (Maven) их тысячи (Git).
git pull
так что все еще существуют какие-то отношения, которые существуют. Если вы клонировали всю копию, она находится на вашем локальном компьютере и отключена от исходного репо.
Когда вы говорите, что создаете хранилище, вы в основном создаете копию хранилища под своим идентификатором GitHub. Главное, на что следует обратить внимание, это то, что любые изменения, внесенные в исходный репозиторий, будут отражены обратно в ваши разветвленные репозитории (вам нужно получить и перебазировать). Однако, если вы внесете какие-либо изменения в свой разветвленный репозиторий, вам придется явно создать запрос на извлечение в исходном репозитории. Если ваш запрос на получение одобрен администратором исходного хранилища , ваши изменения будут зафиксированы / объединены с существующей исходной базой кода. До тех пор ваши изменения будут отражены только в той копии, которую вы подписали .
Коротко:
Модель Fork & Pull позволяет любому разветвить существующий репозиторий и вносить изменения в свой личный форк, не требуя предоставления доступа к исходному репозиторию. Затем изменения должны быть перенесены в исходный репозиторий сопровождающим проекта.
Обратите внимание, что после разветвления вы можете клонировать свой репозиторий (тот, что под вашим именем) локально на вашем компьютере. Внесите в него изменения и отправьте его в свой разветвленный репозиторий. Однако, чтобы отразить ваши изменения в исходном репозитории, ваш запрос на извлечение должен быть утвержден.
Пара других интересных рассуждений -
Вы можете зафиксировать в своем онлайн-репо (или зафиксировать в своем локальном репо, а затем отправить в онлайн-репо), а затем отправить запрос на извлечение.
Менеджер проекта может принять его, чтобы получить ваши изменения в своей основной онлайн-версии.
Клон - это место, где у вас есть правильное дублирование и разделение между двумя (возможно, разными) версиями хранилища. Когда в один репозиторий вносятся изменения, новый контент должен активно копироваться в другой репозиторий с помощью команды push. И внесены изменения в другой репо.
При развёртывании репо на сервере нет необходимости дублировать контент, потому что оба репо будут использовать один и тот же контент [фиксированный объект] с того же сервера. «Хитрость» заключается в управлении различными пользовательскими точками зрения, так что каждый пользователь считает, что у него есть полная личная копия репо. Толкает и выбирает между вилками просто обновляет указатели пользователя.
На более низком уровне git делает то же самое внутри. Если у вас есть три разных файла, каждый из которых содержит Hello World
, то git просто «разветвляет» свою единственную копию блоба Hello World и предлагает ее в каждом из трех мест по мере необходимости.
Возможность раскошелиться на сервер означает, что большой объем хранилища Github не так уж велик в среднем, поскольку каждый орган разделяет одно базовое репо.
Короче говоря, Forking - это то же самое, что и «клонирование под вашим идентификатором / профилем GitHub». Вилка всегда лучше, чем клон, за некоторыми исключениями, очевидно. Разветвленный репозиторий всегда отслеживается / сравнивается с исходным репозиторием в отличие от клонированного репозитория. Это позволяет вам отслеживать изменения, инициировать запросы извлечения, а также вручную синхронизировать изменения, сделанные в исходном репозитории, с вашим разветвленным.
Хотя @ AniketThakur ответ очень хороший. Никто еще не ответил на следующий вопрос.
Могу ли я отправлять пул-запросы только через GitHub, если я разбудил проект?
Нет. Если вы являетесь участником репозитория, вы можете: Сделать локальный клон. Сделать местный филиал. Добавить коммиты в эту ветку. Переместите локальную ветку обратно в github (создавая удаленную ветку в процессе). Сделайте пулл-запрос, запрашивающий объединение этой ветви с основной веткой (или любой другой веткой, которая вам нравится).
В случае, если вы сделали то, на что намекал спрашивающий (забыл раскошелиться и просто локально клонировал репозиторий, внесли изменения и теперь нужно выполнить запрос на извлечение), вы можете вернуться на правильный путь:
Еще одно странное отличие GitHub в том, что изменения в форках не учитываются в вашем журнале активности, пока ваши изменения не будут перенесены в исходное хранилище. Более того, чтобы превратить вилку в правильного клона, вы, очевидно, должны обратиться в службу поддержки Github.
Из Почему мои вклады не отображаются :
Коммит был сделан в развилке
Коммиты, сделанные в развилке, не будут учитываться как ваш вклад. Чтобы они учитывались, вы должны выполнить одно из следующих действий:
Откройте запрос на включение, чтобы ваши изменения были объединены с родительским репозиторием. Чтобы отсоединить вилку и превратить ее в автономный репозиторий на GitHub, обратитесь в службу поддержки GitHub . Если вилка имеет свои собственные вилки, сообщите в службу поддержки, должны ли вилки перемещаться вместе с вашим хранилищем в новую сеть или оставаться в текущей сети. Для получения дополнительной информации см. « О вилках ».