Forking i Cloning to dwa najważniejsze pojęcia, które mogą być znane użytkownikom GitHuba (i podobnych platform hostingu kodu). Ale nic nie jest tak proste, jak wygląda w świecie open source, więc naturalnie istnieje wiele zamieszania wokół obu tych pojęć. Co to jest fork? Co to jest klon? Czy fork i klon to to samo? A przeładowanie terminu fork spotęgowało to zamieszanie wśród społeczności open source. Tak więc, czasami, widelec jest klonem, ale w większości przypadków, widelec jest po prostu widelcem. Przyjrzyjmy się, co jest czym i jak te dwa pojęcia się różnią.

Co to jest GitHub Fork?

Czasami, gdy pracujesz nad projektami open source, przychodzi czas, kiedy ludzie, którzy nie są w twoim zespole, chcieliby wnieść coś do twojego projektu. Powiedzmy, że chcesz wnieść coś do czyjegoś projektu, którego nie jesteś właścicielem ani współpracownikiem. Co wtedy zrobisz? Nie możesz zmienić pliku, a już na pewno nie możesz stworzyć nowego pliku. Więc w takich sytuacjach to, co zrobisz, to forkowanie repozytorium. Ale co to jest fork? Widelec to nic innego jak kopia repozytorium, która pozwala na pracę nad czyimś projektem bez wpływu na oryginalny projekt. Widelec to jedna z najprostszych operacji na GitHubie, która tworzy kopię repozytorium bez konieczności posiadania pozwolenia na modyfikację oryginalnego repozytorium. Zamiast pobierać całe repozytorium, tworzy kopię na serwerach GitHub, która jest oddzielnym repozytorium. Możesz utworzyć lokalne repo, wprowadzić do niego zmiany i zrobić commity, a także wnieść zmiany z powrotem do oryginalnego repozytorium.

Czym jest GitHub Clone?

Współpraca jest podstawowym elementem Git, ale aby współpracować w Git, musisz mieć zdalne repozytorium Git. Technicznie możesz popychać zmiany do i wyciągać zmiany z repozytoriów poszczególnych osób, ale często nie jest to zalecane, ponieważ tworzy bałagan dotyczący tego, kto pracuje nad czym, jeśli nie jesteś ostrożny. Ponadto nie chcesz również przerywać współpracowników i powinni oni mieć dostęp do repozytorium, nawet jeśli twoja maszyna jest w trybie offline. Przydatne jest więc posiadanie wspólnego repozytorium. Najlepszą rzeczą do zrobienia jest sklonowanie repozytorium. Ale, co to jest klon? Klon to w zasadzie lokalna kopia zdalnego repozytorium, która jest przechowywana na laptopie lub komputerze osobistym, dzięki czemu można synchronizować między zdalnymi i lokalnymi lokalizacjami projektu. Dzięki temu możesz pracować nad plikami w projekcie lub modyfikować je lokalnie, zamiast bezpośrednio ingerować w oryginalne repozytorium. Cała historia wszystkich zmian dokonanych w projekcie również zostaje domyślnie wyciągnięta podczas klonowania repozytorium.

Różnica między Forkiem a Klonem

Znaczenie

– Widelec repozytorium to nic innego jak kopia tego repozytorium, która pozwala na pracę nad cudzym projektem bez wpływu na oryginalny projekt. Zamiast pobierać całe repozytorium, tworzy na serwerach GitHub kopię będącą osobnym repozytorium, na którym można pracować. Z drugiej strony klon jest zasadniczo lokalną kopią zdalnego repozytorium, która jest przechowywana na laptopie lub komputerze osobistym, dzięki czemu można synchronizować między zdalnymi i lokalnymi lokalizacjami projektu.

Operacja

– Forking to jedna z najprostszych operacji na GitHubie, która tworzy kopię repozytorium bez konieczności posiadania uprawnień do modyfikacji oryginalnego repozytorium. Forking repozytorium tworzy kopię repozytorium na Twoim koncie GitHub, a stamtąd możesz sklonować repozytorium. Klonowanie pozwala pracować nad lub modyfikować pliki w projekcie lokalnie, zamiast bezpośrednio pracować na oryginalnym repozytorium. Możesz sklonować dowolne publiczne repozytorium, uruchomić kod na swoim komputerze osobistym i wprowadzić zmiany w kodzie. Ale możesz popchnąć zmiany z powrotem do zdalnego repo tylko wtedy, gdy masz prawa push do repo.

Cel

– Jeśli chcesz stworzyć most między swoją kopią projektu a oryginalnym repozytorium, lepiej rozwidlić repozytorium. Dzięki temu możesz dobrze współpracować z innymi deweloperami na całym świecie. Tak więc, forking pozwala ci wnieść kod do repozytoriów, w których nie jesteś właścicielem lub współpracownikiem. Klonowanie tworzy dokładną replikę zdalnego repozytorium Git i pobiera ją na lokalną maszynę i robi to bez wpływu na zdalne repozytorium. Pozwala to na pracę nad projektami, naprawianie niektórych błędów lub wprowadzanie zmian do kodu, ale bez zmiany czegokolwiek w zdalnym repozytorium.

Podsumowanie

Głównym celem Git jest zachęcanie do współpracy wśród deweloperów na całym świecie, więc koniecznie powinieneś mieć możliwość wniesienia czegoś do repozytoriów, w których nie jesteś właścicielem ani żadnym ze współpracowników. Współpraca jest podstawową częścią platform hostingu kodu, takich jak GitHub. Forking i klonowanie to dwie najważniejsze operacje, które pozwalają lepiej współpracować z innymi na całym świecie. Forking to proces tworzenia kopii projektu, który pozwala na wniesienie wkładu do cudzego projektu bez wpływu na oryginalne repozytorium. Klonowanie to kopiowanie projektu z jego oryginalnego zdalnego repozytorium na własną lokalną maszynę w celu jego zmiany lub dodania do niego nowych funkcjonalności, ale bez ingerencji w oryginalne repozytorium.