Продолжаю увлекательное знакомство новичка с сервисом GitHub и с системой контроля версий Git.
Так как имею учетную запись на GitHub, которую регулярно использую, то у меня возник вопрос, который не мог не возникнуть, рано или поздно. Касается он такой темы, как fork.
Не знаю даже, как правильно поступить дальше - попытаться самому описать вопрос, своими словами; или же попытаться сделать вольный перевод статьи на эту тему - Fork A Repo. Но лучше все же расскажу своими словами.
Fork - это копия репозитория
Fork - это вcего навсего копия репозитория. Это тоже самое, что branch в Git. Только на GitHub такой branch называется fork
- присутствует своя терминология. Само слово fork в переводе означает ответвление. Для того, чтобы воспользоваться fork
, нужно иметь свою собственную учетную запись на GitHub; и нужно войти под ней на GitHub в момент выполнения fork
.
Для чего нужен fork
? Для тех же целей, что и branch в
Git. С помощью него создается точная копия оригинального репозитория,
только на сервисе GitHub. В копии репозитория можно вносить свои
собственные изменения, редактировать файлы или удалять директории.
Как только все изменения будут внесены, то можно поделиться ими -
отправить авторам оригинального репозитория запрос на слияние вашего
измененного репозитория с их оригинальным репозиторием. Такой запрос
называется pull request
.
Если авторам оригинального репозитория ваши изменения понравятся, то они могут внести их в свой собственый оригинальный репозиторий - принять запрос и выполнить слияние.
Существование fork полностью отвечает идеологии OpenSource и GitHub, в частности. Идеология OpenSource заключается в свободном обмене исходным кодом программ и fork однозначно помогает в этом деле. С помощью fork можно одним движением получить копию любого исходного кода, выложенного на GitHub в свободном доступе.
Fork - создание копии репозитория
Давайте от слов перейдем к делу и на практике выполним хотя бы один fork на GitHub. К слову сказать, в приведенной выше статье-оригинале Fork A Repo дается ссылка на репозиторий Spoon-Knife, созданный авторами статьи для учебных целей - научиться работать с fork на GitHub. Вы, уважаемый читатель, также можете свободно воспользоваться им для себя, чтобы научиться пользоваться fork.
Я воспользуюсь другим репозиторием, который выложен в свободном доступе достаточно известным верстальщиком Юрием Артюхом (akella). Ниже привожу шаги по созданию Fork на GitHub.
- захожу на GitHub под своей учетной записью
- перехожу по ссылке github/akella/sass, по которой расположен репозиторий akella/sass
Фактически, теперь я нахожусь в репозитории akella/sass пользователя akella (Юрий Артюх). Об этом красноречиво говорит надпись akella/sass в левом верхнем углу окна браузера. В правом верхнем углу окна браузера нахожу кнопку Fork.
И нажимаю на нее:
Может случиться, что вы, уважаемый читатель, ничего и не заметите. Но
это не так на самом деле. Приглядитесь к “главной” надписи - она
изменилась с akella/sass
на gearmobile/sass
; а ниже мелким шрифтом еще - forked from akella/sass
. Думаю, тут и говорить больше нечего - все и так понятно.
Теперь этот репозиторий мой - точнее, у меня теперь копия оригинального репозитория akella/sass
. Я могу делать с ним все, что мне понадобиться - просто пользоваться или же вносить свои собственные изменения.
Если изменения мне покажутся существенными, то я могу отправить пользователю akella запрос на слияние pull request
моего репозитория gearmobile/sass
с его репозиторием akella/sass
.
Если пользователь akella посчитает эти изменения действительно
существенными (с его точки зрения), то он может и принять мой запрос.
Я также могу удалить репозиторий gearmobile/sass, если в нем отпадет надобность. Надеюсь, вы хорошо помните, как удалять репозиторий на GitHub - “Как удалить репозиторий на GitHub”.
Комментарии