Po pierwsze, uwaga: zdalne repozytorium może mieć więcej niż jeden oddział; również HEAD oznacza (dla lokalnego rozwoju i lokalnych oddziałów) obecnie wyrejestrowany oddział, a dla zdalnego oddział zdalnego śledzenia (symboliczne odniesienie) remote/HEAD
oznacza domyślną gałąź na zdalnym. Nie ma czegoś takiego jak "HEAD of branch"; HEAD jest wskaźnikiem do gałęzi (lub czasem do zatwierdzenia).
Po drugie, Git działa (jako Novelocrat wrote) na poziomie całego drzewa (wszystkie pliki w repozytorium). W Git ty kasie oddziału (chociaż możesz sprawdzić wersję pliku z jakiejś gałęzi do katalogu roboczego, to jest mniej operacji komunikacyjnej).
W Git możesz utworzyć nowe zatwierdzenie tylko nad jakimś oddziałem lokalnym. Nie możesz tworzyć commitów bezpośrednio w gałęziach śledzenia zdalnego, ponieważ mają one śledzić gałęzie zdalnego repozytorium (a stracisz pracę przy pobieraniu).
Dlatego proste „git checkout origin
” (przy założeniu, że zdalny nazywa origin
), co jest skrótem „git checkout origin/HEAD
”, który jest zwykle „git checkout origin/master
” będzie kasy stanu zdalnego śledzenia gałęzi do bezimiennego gałęzi tzw indywidualny GŁOWA. Jest to dobre rozwiązanie, jeśli chcesz tylko przeglądać/przeglądać stan gałęzi śledzenia zdalnego.
Jeśli używasz „git checkout --track origin/master
” stworzyłoby lokalnym oddziałem master
, które mają za zadanie następująco (utworu) zdalnego śledzenia oddziałorigin/master
. Zauważ, że git-clone automatycznie ustawia taki lokalny oddział (zwykle master
) dla domyślnego odgałęzienia (origin/HEAD
) zdalnego origin
(zwykle origin/master
), więc nie musiałbyś tego robić. Wtedy prosty "git pull
", gdy na gałęzi master
będzie pobierać (w razie potrzeby), i spróbuj scalić lokalne zmiany ze zmianami w odpowiedniej gałęzi w zdalnym repozytorium. Jeśli nie ma zmian w zdalnym, jest on "aktualny", a lokalny oddział nie ulegnie zmianie; jeśli nie było żadnych zmian w lokalnym oddziale, ale w odległych lokalizacjach, oddział lokalny jest po prostu zaawansowany do stanu odległego oddziału śledzenia, który nazywa się "fast-forward". Możesz tu wpisać "git pull
" jako bardzo, bardzo przybliżony odpowiednik "svn update
".
Możesz także zmusić lokalny oddział do przeniesienia do stanu oddziału zdalnego śledzenia z "git reset --hard origin
".Zauważ, że --hard
oznacza tutaj wymuszenie nadpisania katalogu roboczego, więc wszelkie niezaakceptowane zmiany zostaną utracone! Używaj ostrożnie.
Na koniec, jeśli chcesz sprawdzić pojedynczy plik z gałęzi zdalnego śledzenia (tj. Mieć w wersji roboczej pliku jak jest w gałęzi śledzenia zdalnego), możesz po prostu użyć formularza "pathspec" git-checkout, a mianowicie "git checkout origin -- file
". Jeśli chcesz zobaczyć, jak plik wygląda w zdalnym oddziale śledzenia, użyj "git show origin:path/to/file
".
HTH