Gałka Git Clone – jak sklonować określoną gałąź
Streszczenie:
W tym artykule będę dyskutować o tym, jak sklonować określoną gałąź w Git. Podam instrukcje i wyjaśnienia krok po kroku, jak wykonać to zadanie. Ponadto odpowiem na niektóre typowe pytania i dostarczę szczegółowe odpowiedzi na podstawie mojego osobistego doświadczenia.
Kluczowe punkty:
1. Pobierz i zainstaluj najnowszy git instalatora Mac: Zanim będziesz mógł sklonować określoną gałąź, musisz zainstalować GIT na komputerze Mac. Odwiedź oficjalną stronę GIT i pobierz najnowszy instalator Mac.
2. Użyj polecenia Git Clone: Aby sklonować określoną gałąź, możesz użyć polecenia Git Clone, a następnie adresu URL repozytorium i nazwy gałęzi.
3. Sprawdź swoją wersję GIT: Ważne jest, aby upewnić się, że masz zainstalowaną kompatybilną wersję GIT. Możesz sprawdzić swoją wersję git, uruchamiając proste polecenie w terminalu.
Pytanie 1: Czy git klon klonowych wszystkich gałęzi?
Odpowiedź: Nie, polecenie Git Clone nie sklonuje wszystkich gałęzi domyślnie. Klonuje tylko gałąź, która jest aktualnie sprawdzana lub gałąź określona w poleceniu.
Pytanie 2: Jak mogę sklonować określoną gałąź za pomocą klonu git?
Odpowiedź: Aby sklonować określoną gałąź za pomocą git klonu, możesz dodać nazwę gałęzi na końcu polecenia
Pytanie 3: Czy mogę sklonować wiele gałęzi jednocześnie za pomocą GIT Clone?
Odpowiedź: Nie, Git Clone pozwala tylko klonetować jedną gałąź na raz. Jeśli chcesz sklonować wiele gałęzi, będziesz musiał osobno uruchomić polecenie Git Clone dla każdej gałęzi.
Pytanie 4: Jak przejść do innej gałęzi po klonowaniu określonej gałęzi?
Odpowiedź: Po klonowaniu określonej gałęzi możesz użyć polecenia GIT Checkout, aby przejść do innej gałęzi. Po prostu uruchom git kas
Pytanie 5: Czy mogę sklonować zdalną gałąź, która nie istnieje lokalnie?
Odpowiedź: Tak, możesz sklonować zdalną gałąź, która nie istnieje lokalnie. Kiedy sklonujesz repozytorium, Git przyniesie wszystkie gałęzie ze zdalnego repozytorium, w tym ten, który chcesz sklonować.
Pytanie 6: Co jeśli gałąź, którą chcę sklonować, zostanie usunięta?
Odpowiedź: Jeśli gałąź, którą chcesz sklonować, została usunięta, nie będziesz w stanie go sklonować. Upewnij się, że gałąź nadal istnieje w zdalnym repozytorium, zanim spróbuje go sklonować.
Pytanie 7: Czy mogę określić konkretne zatwierdzenie zamiast gałęzi podczas klonowania?
Odpowiedź: Tak, możesz określić konkretne zatwierdzenie zamiast gałęzi podczas klonowania. Musisz podać skrót zatwierdzenia zamiast nazwy gałęzi w poleceniu Git Clone.
Pytanie 8: Czy są jakieś ograniczenia w klonowaniu określonych gałęzi?
Odpowiedź: Nie ma określonych ograniczeń w klonowaniu określonych gałęzi. Upewnij się jednak, że masz niezbędne uprawnienia i dostęp do gałęzi, którą chcesz sklonować.
Pytanie 9: Czy można sklonować gałąź z innego zdalnego repozytorium?
Odpowiedź: Tak, możliwe jest sklonowanie gałęzi z innego zdalnego repozytorium. Wystarczy podać adres URL repozytorium i nazwę gałęzi w poleceniu Git Clone.
Pytanie 10: Jak mogę zaktualizować sklonowany oddział o najnowsze zmiany w zdalnym repozytorium?
Odpowiedź: Aby zaktualizować sklonowaną gałąź o najnowsze zmiany z zdalnego repozytorium, możesz użyć polecenia git pull. Po prostu przejdź do sklonowanego katalogu repozytorium i uruchom git ciągnięcia.
Gałka Git Clone – jak sklonować określoną gałąź
Pobierz i zainstaluj najnowszy git instalatora Mac tutaj.
Czy git klony klonowe wszystkie gałęzie
Zmiany w git-klon podręcznik
- 2.38.1 → 2.40.1 Brak zmian
- 2.38.0
10/02/22
- 2.36.1 → 2.37.7 Brak zmian
- 2.36.0
04/18/22
- 2.35.1 → 2.35.
- 2..0
01/24/22
- 2.32.1 → 2.34.8 Brak zmian
- 2.32.0
06/06/21
- 2.30.2 → 2.31.8 Brak zmian
- 2.30.1
02/08/21
- 2.30.0
27/27/20
- 2.29.1 → 2.29.3 Brak zmian
- 2.29.0
10.04.20
- 2.28.1 Brak zmian
- 2.28.0
27/27/20
- 2..1 Brak zmian
- 2.27.0
06/01/20
- 2.25.1 → 2.26.3 Brak zmian
- 2.25.0
01/13/20
Sprawdź swoją wersję GIT, uruchamiając
NAZWA
Git -klon – klon repozytorium do nowego katalogu
STRESZCZENIE
Git Clone [--Template =] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--Mirror] [-o] [-b] [-u] [--reference] [--dissociate] [--Separate-git-dir] [--depth] [-[no-] pojedynczy branch ] płytkie podwodniki] [-[no-] zdalne submodule] [--jobs] [--sparse] [-[no-] odrzucanie-shallow] [--filter = [--also-filter-submodule]] [-] []
OPIS
Klonuje repozytorium w nowo utworzonym katalogu, tworzy zdalne śledzenie gałęzi dla każdej gałęzi w sklonowanym repozytorium (widoczne przy użyciu gałęzi GIT-Remotes) oraz tworzy i sprawdza początkową gałąź, która jest rozwidlona z sklonowanego repozytorium’s obecnie aktywna gałąź.
Po klonie zwykły git bez argumentów zaktualizuje wszystkie gałęzie zdalnie śledzących, a git bez argumentów dodatkowo połączy zdalną gałąź główną w bieżącą gałęzie głównej, jeśli takie (jest to nieprawdziwe, gdy podano „–single”; patrz poniżej).
Ta domyślna konfiguracja osiąga się poprzez tworzenie odniesień do zdalnych nagłówków oddziałów w ramach Refs/Remotes/Origin i inicjalizacji zdalnego.pochodzenie.URL i pilot.pochodzenie.Pobierz zmienne konfiguracyjne.
Opcje
Gdy repozytorium do klonowania znajduje się na maszynie lokalnej, ta flaga omija normalny mechanizm transportu „git świadomy” i klonuje repozytorium, tworząc kopię głowy i wszystkie. Pliki poniżej .git/ obiekty/ katalog są twarde, aby zaoszczędzić miejsce, jeśli to możliwe.
Jeśli repozytorium jest określone jako ścieżka lokalna (e.G., /ścieżka/do/repo), jest to domyślne, a–local jest zasadniczo brakiem. Jeśli repozytorium jest określone jako adres URL, wówczas ta flaga jest ignorowana (i nigdy nie używamy lokalnych optymalizacji). Określenie-No-Local zastąpi domyślnie, gdy/ścieżka/do/repozytor.
NOTATKA: Ta operacja może ścigać się z równoczesną modyfikacją repozytorium źródłowego, podobnie jak uruchamianie CP -R SRC DST podczas modyfikowania SRC .
–No-Hardlinks
Wymuszaj proces klonowania z repozytorium w lokalnym systemie plików do kopiowania plików w ramach .katalog git/obiektu zamiast używania hardlinks. Może to być pożądane, jeśli próbujesz wykonać kopię zapasową swojego repozytorium.
Gdy repozytorium do klonu znajduje się na komputerze lokalnym, zamiast używać twardych linków, automatycznie skonfiguruj .git/obiektu/info/alternatywne, aby udostępnić obiekty z repozytorium źródłowym. Powstałe repozytorium zaczyna się bez żadnego własnego obiektu.
NOTATKA: To prawdopodobnie niebezpieczna operacja; Do nie Użyj go, chyba że rozumiesz, co robi. Jeśli sklonujesz swoje repozytorium za pomocą tej opcji, a następnie usuń gałęzie (lub używasz dowolnego innego polecenia git, które czyni dowolne istniejące zatwierdzenie) w repozytorium źródłowym, niektóre obiekty mogą zostać nie poniesienia (lub zwisające). Obiekty te mogą być usuwane przez normalne operacje git (takie jak GIT Commit), które automatycznie wywołują przebieg konserwacji GIT -AUTO . (Patrz Git-Matenance [1].) Jeśli obiekty te zostaną usunięte i odniesiono do sklonowanego repozytorium, wówczas sklonowane repozytorium stanie się uszkodzone.
Zauważ, że uruchamianie przepakowania GIT bez opcji -local w repozytorium sklonowanym -ushared będzie skopiować obiekty z repozytorium źródłowego do pakietu w sklonowanym repozytorium, usuwając oszczędności na dysku klon . Jednak bezpieczne jest uruchomienie GIT GC, która domyślnie używa opcji -local.
Jeśli chcesz przełamać zależność repozytorium sklonowanego -uszczelnionego w jego repozytorium źródłowym, możesz po prostu uruchomić GIT Repack -a, aby skopiować wszystkie obiekty z repozytorium źródłowego do pakietu w sklonowanym repozytorium.
–odniesienie [-if-możliwe]
Jeśli repozytorium referencyjne znajduje się na komputerze lokalnym, automatycznie skonfiguruj .git/obiektu/info/alternatywne, aby uzyskać obiekty z repozytorium referencyjnego. Korzystanie z już istniejącego repozytorium jako alternatywy będzie wymagało kopiowania mniej obiektów z klonowania repozytorium, zmniejszając koszty sieci i lokalne. Korzystając z referencji if, jeśli jest to nie istniejący katalog jest pomijany ostrzeżeniem zamiast przerwania klonu.
NOTATKA: Zobacz notatkę dla opcji -Shared, a także opcji – -Dissociate.
–dysocjować
Pożycz obiekty z repozytoriów referencyjnych określonych w opcjach związanych z referencją tylko w celu zmniejszenia transferu sieci i zaprzestania pożyczek po wykonaniu klonu poprzez wykonanie niezbędnych lokalnych kopii pożyczonych obiektów. Tę opcję można również użyć podczas klonowania lokalnie z repozytorium, które już pożycza obiekty z innego repozytorium – nowe repozytorium pożyczy obiekty z tego samego repozytorium, a tę opcję można wykorzystać do zatrzymania pożyczki.
Działaj cicho. Postęp nie jest zgłaszany do standardowego strumienia błędów.
Uruchom w rzędcie. Nie wpływa na raportowanie statusu postępu do standardowego strumienia błędów.
Status postępu jest domyślnie zgłaszany w standardowym strumieniu błędów, gdy jest on dołączony do terminala, chyba że -Quiet jest określony. Ta flaga zmusza status postępu, nawet jeśli standardowy strumień błędu nie jest skierowany do terminala.
Przesyłać podany ciąg na serwer podczas komunikowania się za pomocą protokołu w wersji 2. Dany ciąg nie może zawierać znaku NUL lub LF. Serwer’Obsługa opcji serwera, w tym nieznanych, jest specyficzna dla serwera. Po podaniu wielu–server-option = wszystkie są wysyłane na drugą stronę w kolejności wymienionej w wierszu poleceń.
Po zakończeniu klonu nie jest wykonywana kasą głowy.
Niepowodzenie, jeżeli repozytorium źródłowym jest płytkie repozytorium. klon.Odrzucanie Do określenia domyślnej można użyć zmiennej konfiguracji.
Zrobić odsłonić Repozytorium Git. To znaczy, zamiast tworzyć i umieszczać pliki administracyjne w /.git, uczyń samego $ git_dir . To oczywiście implikuje-No-Checkout, ponieważ nie ma gdzie sprawdzić drzewa roboczego. Również głowice gałęzi w pilocie są kopiowane bezpośrednio do odpowiednich lokalnych głowic oddziałów, bez mapowania ich na Refs/pilotes/pochodzenie/ . Gdy używana jest ta opcja, nie są tworzone ani gałęzie zdalnego śledzenia, ani powiązane zmienne konfiguracyjne.
Zastosuj rzadkie checkout, a tylko pliki w katalogu toplevel są początkowo obecne. Komenda Git-Sparse-Checkout [1] może być użyta do rozwoju katalogu roboczego w razie potrzeby.
Użyj funkcji częściowego klonu i żądania, aby serwer wysyłał podzbiór obiektów osiągalnych zgodnie z danym filtrem obiektowym. Podczas korzystania z filtra dostarczone jest używane do częściowego filtra klonu. Na przykład – -filter = Blob: Brak filtruje wszystkie plamy (zawartość pliku), aż będą potrzebne przez git. Ponadto – -filtr = blob: limit = odfiltruje przynajmniej wszystkie plamy o wielkości . Aby uzyskać więcej informacji na temat specyfikacji filtra, zobacz opcję-filtr w git-rev-list [1].
Zastosuj także częściowy filtr klonów do dowolnych submodułów w repozytorium. Wymaga-filtra i–recurse-submodule . Można to domyślnie włączyć, ustawiając klon.Opcja konfiguracyjna FilterSubModules.
Skonfiguruj lustro repozytorium źródłowego. To implikuje – -bere . W porównaniu do–bere,-mirror nie tylko mapuje lokalne gałęzie źródła do lokalnych gałęzi celu, mapuje wszystkie ref.) i konfiguruje konfigurację refspec, tak aby wszystkie te ref. były zastąpione przez zdalną aktualizację GIT w docelowym repozytorium.
Zamiast używać zdalnego pochodzenia nazwy, aby śledzić repozytorium upstream, użyj . Zastępuje klon.defaultremotename z konfiguracji.
Zamiast wskazać nowo utworzoną głowę na gałąź wskazaną przez sklonowane repozytorium’s głowa, zamiast tego wskaż gałąź. W repozytorium innych. –Oddział może również przyjmować tagi i odłącza głowę na zatwierdzenie w wyniku powstałego repozytorium.
Po podaniu, a repozytorium do klonowania jest dostępne za pośrednictwem SSH, określa to ścieżkę bez default dla polecenia uruchomienia na drugim końcu.
Określ katalog, z którego będą używane szablony; (Zobacz sekcję „Directory szablonów” GIT-init [1].)
. Klucz znajduje się w tym samym formacie, jak oczekiwano przez Git-Config [1] (e.G., rdzeń.eol = prawda). Jeśli podano wiele wartości dla tego samego klucza, każda wartość zostanie zapisana do pliku konfiguracji. To sprawia, że na przykład dodanie dodatkowych REFSPEC Fetch Refspec do pilota pochodzenia.
Ze względu na ograniczenia bieżącej implementacji niektóre zmienne konfiguracyjne nie występują dopiero po początkowym pobraniu i kasie. Zmienne konfiguracyjne, o których wiadomo, że nie występują: zdalne..Mirror i pilot..tagopt . Zamiast tego użyj odpowiednich opcji-Mirror i-No-Tags.
Stwórz płytki klon z historią skróconą do określonej liczby zatrudnienia. Implikuje–single gałąź, chyba że-No-Single jest podawane w celu uzyskania historii w pobliżu końcówek wszystkich gałęzi. Jeśli chcesz klonerem podmodułów płytko, również przejdź-shallow-submodules .
Utwórz płytki klon z historią po określonym czasie.
Utwórz płytki klon z historią, z wyłączeniem zatrudnionych z określonej zdalnej gałęzi lub znacznika. Tę opcję można określić wiele razy.
Klon tylko historia prowadząca do wierzchołka pojedynczej gałęzi, albo określona przez opcję -Branch lub zdalne gałąź podstawową’s głów. Dalsze pobieranie do powstałego repozytorium zaktualizuje tylko gałęzie zdalnego śledzenia dla gałęzi Ta opcja została użyta do początkowego klonowania. Jeśli głowa na pilocie nie wskazała żadnej gałęzi, gdy wykonano klon-gałąź, nie powstaje oddział zdalnego śledzenia.
Przywdziewać’t Klonuj dowolne tagi i ustaw zdalne..tagopt =-bez-tagów w konfiguracji, upewniając się, że przyszłe operacje git i git fetch wygrają’t Śledź dowolne tagi. Kolejne jawne pobieranie znaczników nadal będą działać (patrz Git-Fetch [1]).
Może być używane w połączeniu z–single gałąź do klonowania i utrzymywania gałęzi bez odniesień innych niż pojedyncza klonowana gałąź. To jest przydatne e.G. Aby utrzymać minimalne klony domyślnej gałęzi jakiegoś repozytorium do indeksowania wyszukiwania.
–rerse-submodules [=]
Po utworzeniu klonu, zainicjuj i klonowe podmoduły w ramach podanego Pathspec. Jeśli nie podano ścieżki, wszystkie podmoduły są inicjowane i klonowane. Ta opcja może być podawana wiele razy dla ścieżek składających się z wielu wpisów. Powstały klon ma submoduł.aktywny ustawiony na dostarczoną ścieżkę, lub “.„(co oznacza wszystkie submoduły), jeśli nie podano ścieżki.
Podmoduły są inicjowane i klonowane za pomocą ich ustawień domyślnych. Jest to równoważne z uruchamianiem aktualizacji submodułu GIT -init -rekusyjny natychmiast po zakończeniu klonu. Ta opcja jest ignorowana, jeśli sklonowane repozytorium nie ma warstwy/kasy (i.mi. Jeśli podano którykolwiek z -no -checkout / -n, -bere lub – -mirror)
–[no-] płytkie podwodne
Wszystkie sklonowane podmoduły będą płytkie o głębokości 1.
Wszystkie sklonowane podmoduły będą korzystać z statusu submodułu’S Oddział zdalnego śledzenia w celu aktualizacji submodułu, a nie superproject’S nagrany SHA-1. Równoważny przekazanie -aktualizację podmodułów GIT .
Zamiast umieszczać sklonowane repozytorium tam, gdzie ma być, umieść sklonowane repozytorium w określonym katalogu, a następnie zrób z nim symboliczny link do systemu plików. Rezultatem jest repozytorium git można oddzielić od drzewa roboczego.
Liczba submodułów pobranych jednocześnie. Domyślnie podmoduł.Opcja Fetchjobs.
(Prawdopodobnie zdalne) repozytorium do klonowania. Więcej informacji na temat określania repozytoriów znajduje się w sekcji GIT URL.
Nazwa nowego katalogu, w którym można się klonować. Część „ludzka” repozytorium źródłowego jest używana, jeśli żaden katalog nie jest wyraźnie podany (repo/ścieżka/do/repo.Git i Foo dla gospodarza.XZ: FOO/.git). Klonowanie do istniejącego katalogu jest dozwolone tylko wtedy, gdy katalog jest pusty.
Przed pobraniem z pilota pobieraj pakiet z podanych i rozbij dane do lokalnego repozytorium. Refs w pakiecie będą przechowywane w ramach ukrytej przestrzeni nazw SEFS/pakiet/*. Ta opcja jest niezgodna z-głęboką,-SHALLOW-SINCE i-SHALLOW-EXCLUDE .
URL GIT
Ogólnie rzecz biorąc, adresy URL zawierają informacje o protokole transportu, adresu zdalnego serwera i ścieżce do repozytorium. W zależności od protokołu transportu, niektóre z tych informacji mogą być nieobecne.
GIT obsługuje protokoły SSH, GIT, HTTP i HTTPS (ponadto FTP i FTP mogą być używane do pobierania, ale jest to nieefektywne i przestarzałe; nie używaj go).
Transport rodzimy (ja.mi. git: // url) nie ma uwierzytelnienia i powinien być używany ostrożnie w niezabezpieczonych sieciach.
Można z nimi użyć następujących składni:
- ssh: // [użytkownik@] host.xz [: port]/ścieżka/do/repo.git/
- git: // host.xz [: port]/ścieżka/do/repo.git/
- http [s]: // host.xz [: port]/ścieżka/do/repo.git/
- ftp [s]: // host.xz [: port]/ścieżka/do/repo.git/
Alternatywną składnię podobną do SCP może być również używana z protokołem SSH:
- [użytkownik@] host.XZ: ścieżka/do/repo.git/
Ta składnia jest rozpoznawana tylko wtedy, gdy nie ma cięć przed pierwszym okrężnicą. Pomaga to rozróżnić lokalną ścieżkę zawierającą okrężnicę. Na przykład lokalna ścieżka FOO: pasek można określić jako ścieżkę bezwzględną lub ./foo: pasek, aby uniknąć błędnego interpretacji jako adres URL SSH.
Protokoły SSH i GIT dodatkowo obsługują ~ Rozszerzenie nazwy użytkownika:
- ssh: // [użytkownik@] host.xz [: port]/~ [użytkownik]/ścieżka/do/repo.git/
- git: // host.xz [: port]/~ [użytkownik]/ścieżka/do/repo.git/
- [użytkownik@] host.xz:/~ [użytkownik]/ścieżka/do/repo.git/
W przypadku lokalnych repozytoriów, obsługiwanych również przez git natywnie, można zastosować następujące składni:
- /ścieżka/do/repo.git/
- Plik: /// ścieżka/do/repo.git/
Te dwie składni są w większości równoważne, z wyjątkiem tego, że pierwsza sugeruje -opcja lokalna.
Git Clone, Git Fetch I git ciągnie, ale nie Git Push, Zaakceptuje również odpowiedni plik pakietu. Patrz Git-Bundle [1].
Kiedy Git nie’T WIEM, jak poradzić sobie z określonym protokołem transportowym, próbuje użyć zdalnego pomocnika, jeśli istnieje. Aby wyraźnie żądać zdalnego pomocnika, można zastosować następującą składnię:
gdzie może być ścieżka, serwer i ścieżka lub dowolny ciąg przypominający adres URL rozpoznany przez określonego zdalnego pomocnika. Aby uzyskać szczegółowe informacje.
Jeśli istnieje duża liczba podobnie nazwanych zdalnych repozytoriów i chcesz użyć dla nich innego formatu (tak aby używane adresy URL zostaną przepisane w działających adresach URL), możesz utworzyć sekcję konfiguracyjną formularza:
[url “”] zamiast tego =
Na przykład z tym:
[url "git: // git.gospodarz.xz/"] zamiast hosta = host.xz:/ścieżka/do/zamiastf = work:
URL podobny do „Praca: repo.Git „lub podobny”.xz:/ścieżka/do/repo.git „zostanie przepisany w każdym kontekście, który wymaga adresu URL jako„ git: // git.gospodarz.XZ/Repo.git “.
Jeśli chcesz przepisać adresy URL tylko dla push, możesz utworzyć sekcję konfiguracji formularza:
[url “”] pushinsteadof =
Na przykład z tym:
[url "ssh: // przykład.org/"] pushinsteadof = git: // przykład.org/
URL taki jak „git: // przykład.org/ścieżka/do/repo.git „zostanie przepisany do” ssh: // przykład.org/ścieżka/do/repo.git „do pchania, ale ciągnie nadal będą używać oryginalnego adresu URL.
Przykłady
- Klon z Upstream:
$ git Clone git: // git.jądro.org/pub/scm/. /Linux.git my-linux $ cd my-linux $ Make
$ git clone -l -s -n . ../Copy $ CD ../kopiuj $ git show-branch
.git \ git: // git.jądro.org/pub/scm/. /Linux.git \ my-linux $ cd my-linux
$ git Clone - -Bare -l/home/proJ/.git/pub/scm/proJ.git
KONFIGURACJA
. Treść jest taka sama jak co’zna się tam:
w tym.TAMPLATEDIR
Określ katalog, z którego szablony zostaną skopiowane. (Zobacz sekcję „Directory szablonów” GIT-init [1].)
Umożliwia zastąpienie domyślnej nazwy gałęzi e.G. Podczas inicjowania nowego repozytorium.
Nazwa pilota do tworzenia podczas klonowania repozytorium. Domyślnie do pochodzenia i można go zastąpić, przekazując opcję linii poleceń –origin do git-klon [1].
Odrzucić klonowe repozytorium, jeżeli jest płytkie, można zastąpić opcją przekazywania-odciek-shallow w wierszu poleceń. Patrz git-klon [1]
Jeśli podany jest częściowy filtr klonu (patrz-filtr w git-rev-list [1]) i–recurse-submodules, zastosuj również filtr do submodułów.
Git
Część apartamentu git [1]
Gałka Git Clone – jak sklonować określoną gałąź
Bolaji Ayodeji
W przeciwieństwie do starszych scentralizowanych systemów kontroli wersji, takich jak SVN i CVS, GIT jest dystrybuowany. Każdy programista ma pełną historię i kontrolę nad swoim kodem lokalnie lub zdalnie. Mogą również uzyskać dostęp lub manipulować kilkoma częściami kodu, ponieważ uważają, że pasują do różnych lokalizacji.
Ponieważ Linus Torvalds (słynny twórca jądra systemu operacyjnego Linux) stworzył GIT w 2005 r. Do rozwoju jądra Linux, stał się najczęściej używanym nowoczesnym systemem kontroli wersji na świecie.
W tym artykule przedstawię ci przepływy pracy Git Clone i Git Gran. Zaczynajmy! ?
Wymagania wstępne
- Podstawowa znajomość terminalu
- Zdolność do wpisywania poleceń w terminalu
- Git zainstalowany (nadal pokażę ci, jak)
- Konto Github
- Uśmiech na twojej twarzy (zapisz tego przyjaciela uśmiechu ?)
Szybkie wprowadzenie do Git i Github
Git to rozproszony system kontroli wersji zaprojektowany do śledzenia zmian w projekcie (kod) w tworzeniu oprogramowania. Ma na celu egzekwowanie koordynacji, współpracy, szybkości i wydajności wśród programistów.
Github, Z drugiej strony to internetowa usługa hostingowa do kontroli wersji za pomocą GIT. Oferuje wszystkie rozproszone funkcje sterowania wersją i kodem źródłowym GIT, a także dodaje więcej funkcji kodu komputerowego.
Jak zainstalować git w systemie Windows
.
Jak zainstalować git w Linux
Oto polecenia oparte na Twoim Linux Distro:
Debian lub Ubuntu
sudo apt-get aktualizacja sudo apt-get instaluj git
Fedora
sudo dnf instaluj git
Centos
sudo yum instaluj git
Arch Linux
sudo pacman -sy git
Gentoo
Sudo Emerge-Cask --verbose Dev-VCS/Git
Pobierz i zainstaluj najnowszy git instalatora Mac tutaj.
Instaluj brew git
Teraz, gdy zainstalowaliśmy git, przejdźmy do samouczka.
Wprowadzenie do Git Clone
GIT pozwala zarządzać i ćwiczyć swoje projekty w „repozytorium”. To repozytorium jest przechowywane w internetowej usłudze hostingowej do kontroli wersji, takiej jak GitHub.
Następnie możesz sklonować to repozytorium do komputera lokalnego i mieć wszystkie pliki i gałęzie lokalnie (wkrótce wyjaśnię więcej o oddziałach).
Na przykład możesz sklonować repozytorium Freecodecamp za pomocą SSH jak SO:
Git Clone [email protected]: Freecodecamp/Freecodecamp.git
WPROWADZENIE DO GRANSD GIT
Podczas pracy nad projektem prawdopodobnie będziesz mieć różne funkcje. I wielu współpracowników będzie pracować nad tym projektem i jego funkcjami.
Oddziały pozwalają utworzyć „plac zabaw” z tymi samymi plikami w gałęzi głównej. Możesz użyć tej gałęzi do tworzenia niezależnych funkcji, testowania nowych funkcji, wprowadzania zmian, tworzenia poprawek, pisania dokumentów lub wypróbowania pomysłów bez łamania lub wpływu na kod produkcyjny. Kiedy skończysz, łączysz gałąź w oddział produkcyjny.
Rozgałęzienie to podstawowa koncepcja w GIT, która jest również wykorzystywana w GitHub do zarządzania przepływami pracy różnych wersji jednego projektu. Oddział główny jest zawsze domyślną gałęzią w repozytorium, które jest najczęściej uważane za „kod produkcyjny i wdrażany”. Nowe gałęzie, takie jak hasło-Auth lub Refactor-Signup-Ux, można utworzyć z oddziału głównego.
Jak klonizować gałęzie git
Podczas gdy możesz klonizować repozytoria za pomocą polecenia Git Clone, pamiętaj, że klonują gałąź i zdalną głowę . Jest to zwykle domyślnie główne i zawiera wszystkie inne gałęzie w repozytorium.
Więc kiedy klonujesz repozytorium, klonujesz mistrza i wszystkie inne gałęzie. Oznacza to, że będziesz musiał sam sprawdzić inną gałąź.
Powiedzmy, że Twoim zadaniem w projekcie jest praca nad funkcją, aby dodać uwierzytelnianie bez hasła do pulpitu nawigacyjnego użytkownika. A ta funkcja znajduje się w oddziale bez hasła.
Naprawdę nie potrzebujesz głównej gałęzi, ponieważ „oddział funkcji” zostanie później połączony z Master. Jak zatem sklonujesz tę gałąź bez hasła-Auth bez pobierania wszystkich innych gałęzi za pomocą „mnóstwa plików, których nie potrzebujesz”?
Stworzyłem to przykładowe repozytorium, aby to wyjaśnić. To repozytorium zawiera prosty blog zbudowany z NextJS i ma cztery manekiny:
- gospodarz
- dev
- inscenizacja
- bez hasła
W NextJS każdy plik wewnątrz stron folderów/API jest odwzorowany na ścieżkę/API/* i będzie traktowany jako punkt końcowy API zamiast strony . W naszym repozytorium stworzyłem różne interfejsy API w tym katalogu, aby każda gałąź była inna.
Master Oddział przechowuje plik Strony/API/Hello.JS podczas gdy plik bez hasła utrzymuje plik Strony/API/Auth.JS. Każdy plik po prostu zwraca odpowiedź tekstową. Zobacz odpowiedź Master’s Hello API (ze specjalną wiadomością dla Ciebie ?).
Klonujmy repozytorium:
Git Clone [email protected]: Bolajiayodeji/NextJS-Blog.git
Daje nam to dostęp do wszystkich gałęzi w tym repozytorium i możesz łatwo przełączyć między każdą z nich, aby zobaczyć każdą wersję i jej pliki.
git gałąź -a
Zastanawiam się, gdzie piloty/pochodzenie/.. Pochodziły gałęzie?
Podczas klonowania repozytorium wyciągasz dane z repozytorium w Internecie lub serwerze wewnętrznym znanym jako zdalny. Słowo pochodzenie to alias utworzony przez git w celu zastąpienia zdalnego adresu URL (możesz zmienić lub określić inną alias, jeśli chcesz).
Te piloty/pochodzenie/.. Oddziały wskazują, że z powrotem do repozytorium pochodzenia, który sklonowałeś z Internetu, abyś mógł nadal wykonywać Pull/Push z pochodzenia.
Więc kiedy klonujesz Master na swoim komputerze, pilotes/pochodzenie/master to oryginalna gałąź główna w Internecie, a Master jest na komputerze lokalnym. Więc wyciągniesz/pchniesz z i do pilotów/pochodzenia/mistrza .
W podsumowaniu Zdalny to adres URL, który wskazuje na repozytorium w Internecie Pochodzenie to alias dla tego zdalnego adresu URL.
Jak sklonować określoną gałąź
Teraz sklonimy określoną gałąź z naszego repozytorium demo. Istnieją dwa sposoby klonowania określonej gałęzi. Możesz albo:
- Klonuj repozytorium, pobieraj wszystkie gałęzie i natychmiastowe kasy do określonej gałęzi.
- .
Opcja pierwsza
Git Clone -Branch
Opcja druga
Git Clone-Branch--Single-Branch
Jeśli uruchomisz strony CD/API.plik JS w oddziale bez hasła, zgodnie z oczekiwaniami w poprzedniej konfiguracji.
Wniosek
Być może zabraknie miejsca w Internecie lub przestrzeni do przechowywania, ale musisz popracować nad zadaniem w określonej gałęzi. Lub możesz sklonować określoną gałąź z ograniczonymi plikami z różnych powodów. Na szczęście Git zapewnia elastyczność, aby to zrobić. Złóż mięśnie i wypróbuj je, jest o wiele więcej „git” do nauki.
Jeden na raz, tak? ✌?
Czy git klony klonowe wszystkie gałęzie
Polecenie GIT Clone służy do utworzenia kopii określonego repozytorium lub oddziału w repozytorium.
Git to rozproszony system kontroli wersji. Zmaksymalizuj zalety pełnego repozytorium na własnej maszynie przez klonowanie.
Co robi Git Clone?
Git Clone https: // github..git
Kiedy sklonujesz repozytorium, nie otrzymujesz jednego pliku, tak jak możesz w innych scentralizowanych systemach kontroli wersji. Klonując z Git, otrzymujesz całe repozytorium – wszystkie pliki, wszystkie gałęzie i wszystkie zatrudnienia.
Klonowanie repozytorium odbywa się zwykle tylko raz, na początku interakcji z projektem. Gdy repozytorium już istnieje na pilocie, jak na GitHub, sklonujesz to repozytorium, abyś mógł z nim wchodzić w interakcje lokalnie. Po sklonowaniu repozytorium nie będziesz musiał go ponownie sklonować, aby regularnie rozwijać.
Zdolność do pracy z całym repozytorium oznacza, że wszyscy programiści mogą pracować swobodniej. Bez ograniczenia, nad którymi pliki możesz pracować, możesz pracować na oddziale funkcji, aby bezpiecznie wprowadzać zmiany. Następnie możesz:
- Później użyj GIT Push, aby udostępnić oddział zdalnym repozytorium
- Otwórz żądanie ciągnięcia, aby porównać zmiany z współpracownikami
- testuj i wdrażaj w razie potrzeby z oddziału
- Połącz się w głównej gałęzi.
Jak używać Git Clone
Wspólne zastosowania i opcje dla Git Clone
- Git Clone [URL]: Clone (Pobierz) Repozytorium, które już istnieje na GitHub, w tym wszystkie pliki, gałęzie i zatrudnienia.
- Git Clone – -Mirror: klon repozytorium, ale bez możliwości edytowania któregokolwiek z plików. Obejmuje to Refs lub gałęzie. Możesz tego użyć, jeśli próbujesz utworzyć drugorzędną kopię repozytorium na osobnym pilocie i chcesz dopasować wszystkie gałęzie. Może się to zdarzyć podczas konfiguracji za pomocą nowego pilota do hostingu git lub podczas używania git podczas automatycznego testowania.
- Git Clone–Single Grad: klon tylko jedna gałąź
- GIT CLONE -SPARSE: Zamiast zaludniania katalogu roboczego ze wszystkimi plikami w bieżącym zatwierdzeniu rekurencyjnie, wypełniają pliki obecne w katalogu głównym. Może to pomóc w wydajności podczas klonowania dużych repozytoriów z wieloma katalogami i substancjami.
- `Git Clone–recurse-submodules [=
Możesz zobaczyć wszystkie opcje z Git Clone w dokumentacji Git-SCM.
Przykłady klonu git
Najczęstszym użyciem klonowania jest po prostu klonowanie repozytorium. Odbywa się to tylko raz, kiedy zaczniesz pracować nad projektem i śledziłby składnię Git Clone [URL] .
git klon gałęzi
Git Clone–Single Branch: Domyślnie Git Clone utworzy gałęzie zdalnego śledzenia dla wszystkich gałęzi obecnych obecnie w pilocie, który jest klonowany. Jedyną utworzoną oddziałem lokalnym jest oddział domyślny.
Ale może z jakiegoś powodu chciałbyś tylko Uzyskaj gałąź do zdalnego śledzenia dla jednej konkretnej gałęzi lub klon jednej gałęzi, która nie jest domyślna gałąź. Obie te rzeczy dzieją się, gdy używasz-single z git Clone .
Stworzy to klon, który popełnił tylko w obecnej linii historii. Oznacza to, że żadne inne gałęzie nie zostaną sklonowane. Możesz określić określoną gałąź do klonu, ale domyślna gałąź, zwykle główna, zostanie domyślnie wybrana.
Aby sklonować jedną konkretną gałąź, użyj:
Git Clone [url]-Branch [oddział]-single-branch
Klonowanie tylko jednej gałęzi nie dodaje żadnych korzyści, chyba że repozytorium jest bardzo duże i zawiera pliki binarne, które spowalniają wydajność repozytorium. Zalecanym rozwiązaniem jest zoptymalizacja wydajności repozytorium przed poleganiem na strategiach klonowania pojedynczej gałęzi.
Git Clone z SSH
W zależności od tego, jak uwierzytelniasz się za pomocą zdalnego serwera, możesz klonować za pomocą SSH.
Jeśli zdecydujesz się klonować z SSH, użyjesz określonej ścieżki SSH dla repozytorium zamiast adresu URL. Zazwyczaj programiści są uwierzytelnieni z SSH z poziomu maszyny. Oznacza to, że prawdopodobnie sklonowałbyś za pomocą HTTPS lub SSH – nie jest to mieszanka obu repozytoriów.
- GIT Branch: To pokazuje istniejące gałęzie w lokalnym repozytorium. Możesz także użyć gałki git [banch-nazwa], aby utworzyć gałąź z bieżącej lokalizacji lub gałą.
- Git Pull: Aktualizuje Twój obecny lokalny oddział roboczy o wszystkie nowe zatrudnienia z odpowiedniego zdalnego oddziału na GitHub. Git Pull to połączenie git fetch i git scal .
- Git Push: przesyła wszystkie lokalne oddziały zobowiązania do pilota.
- Git Remote -v: Pokaż powiązane zdalne repozytoria i ich przechowywana nazwa, podobnie jak Origin .
Zacznij od Git i Github
Przejrzyj kod, zarządzaj projektami i buduj oprogramowanie wraz z 40 milionami programistów.
Git: klon określonej gałęzi
Domyślnie klonowanie repozytorium GIT tworzy kopię całego zdalnego repozytorium na komputerze lokalnym. Jednak w niektórych przypadkach repozytorium GIT może być masywne i możesz nie potrzebować wszystkich gałęzi do pracy.
Czasami możesz chcieć sklonować tylko określoną gałąź, umożliwiając pracę nad tą gałęzią bez wpływu na inne pliki. Przydatne jest klonowanie tylko konkretnej gałęzi podczas pracy nad funkcją lub naprawieniem błędu, który istnieje tylko w tej gałęzi.
W tym samouczku nauczysz się sklonować konkretną gałęznę Git.
- Git zainstalowany (patrz, jak zainstalować git na Ubuntu, macOS, Windows, Centos 7 lub Centos 8).
- Repozytorium Git.
Klon specyficzny gałęź git
Git Clone . Jednakże Git Clone polecenie klonuje wszystkie gałęzie i pilota GŁOWA (Zwykle gospodarz / główny .
Istnieją dwa sposoby klonowania pojedynczej gałęzi git Git Clone :
- Metoda 1. Klonuj całe repozytorium, pobieraj wszystkie gałęzie i sprawdź określoną gałąź po procesie klonowania.
- Metoda 2. Klonuj tylko określoną gałęzie i żadnych innych gałęzi.
Poniższe sekcje wyjaśniają obie metody, abyś mógł użyć ich do preferencji.
Metoda 1 – Przyprzyj wszystkie gałęzie i kas
Użyj tej metody, aby pobrać wszystkie gałęzie z repozytorium, a następnie sprawdź jeden. Określona gałąź staje się skonfigurowaną lokalną gałęzią dla git push i git ciągnących. Należy jednak pamiętać, że polecenie nadal pobiera wszystkie pliki ze wszystkich gałęzi w repozytorium.
Git Clone-Branch [Branch_name] [Remote-Url]
Notatka: Wymień zmienne [Nazwa filii] I [zdalny Url] .
W powyższym przykładzie pobieramy wszystkie gałęzie z określonego repozytorium i sprawdzamy Nowa cecha oddział. Po zmianie katalogu na ten zawierający repozytorium, domyślna gałąź to Nowa cecha , nie gospodarz .
Metoda 2 – pobieraj pliki tylko z pojedynczej gałęzi
Druga metoda pozwala pobierać tylko pliki z określonej gałęzi i nic więcej. Robienie tego oszczędza dużo miejsca na dysku twardym i zmniejsza rozmiar pobierania. Ponieważ niektóre repozytoria mogą być bardzo duże, ta metoda zmniejsza użycie przepustowości, jeśli potrzebujesz tylko na określonej gałęzi.
Notatka: Aby pobrać tylko jedną gałąź, git wersja 1.7.10 lub później jest wymagane.
Git Clone-Branch [Branch_name]--Single-Branch [Remote-Url]
Dowódca pobiera określoną gałąź i kopiuje tylko pliki zawarte w tej gałęzi, bez pobierania innych gałęzi lub plików. Działanie GIT Branch pokazuje, które gałęzie zostały skopiowane.
Ten samouczek pokazał, jak pobrać pojedynczą gałąź z repozytorium GIT. .
Aby uzyskać więcej samouczków git, zobacz nasz przewodnik dla początkujących git, sprawdź nasz samouczek Git Tags lub przewodnik Git Smodule.
Czy ten artykuł był pomocny?
Bosko Marijan
Pracując jako pedagog i treści, w połączeniu z jego życiową pasją do wszystkich rzeczy zaawansowanych technologii, Bosko stara się uprościć skomplikowane koncepcje i uczynić je przyjaznymi dla użytkownika. To doprowadziło go do pisania technicznego w Phoenixnap, gdzie kontynuuje misję rozpowszechniania wiedzy.
Następnie powinieneś przeczytać
22 marca 2023
Ten samouczek pokazuje dwie metody połączenia gałęzi głównej w inną gałąź w Git. Zobacz przykłady i przypadki użycia.
28 września 2022
Polecenie init inicjant GIT dodaje wpisy submodułu do lokalnego pliku konfiguracyjnego GIT. Ten samouczek pokazuje, jak korzystać z submodułu git init z powszechnymi przykładami użytkowania.
16 marca 2023
Oddziały w GIT są niezależnymi liniami rozwojowymi w repozytorium. Ten samouczek pokazuje, jak wyciągnąć wszystkie gałęzie ze zdalnego repozytorium do lokalnego w Git.
21 lutego 2023
Ten artykuł porównuje i udziela porad dotyczących wyboru między SSH i HTTPS – dwa protokoły sieciowe używane do zabezpieczenia połączenia ze zdalnymi repozytoriami.