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