Jaka jest różnica między HEAD
imaster
Gitem Gitem?
Zrobiłem klon projektu na GitHub i chcę przekazać moje zmiany do pilota. Ale do którego powinienem naciskać?
master
jest odniesieniem do końca gałęzi. Zgodnie z konwencją (i domyślnie) jest to zwykle główna gałąź integracji, ale nie musi tak być.
HEAD
jest w rzeczywistości specjalnym rodzajem odniesienia, które wskazuje na inne odniesienie. Może wskazywać master
lub nie (wskaże, który oddział jest aktualnie wyewidencjonowany). Jeśli wiesz, że chcesz zobowiązać się domaster
oddziału, popchnij do tego.
Oto wizualny przykład:
W swoim własnym repozytorium możesz sprawdzić, do kogo HEAD
wskazuje, uruchamiając to:
$ git symbolic-ref HEAD
refs/heads/master
Jednak znalezienie miejsca, na które remotes/origin/HEAD
wskazuje, jest trudniejsze, ponieważ znajduje się na zdalnym komputerze.
Tutaj jest świetny mały samouczek na temat referencji git:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
Prosta odpowiedź brzmi:
HEAD
wskaźnik / etykieta do ostatniego zatwierdzenia gałęzi, w której aktualnie się znajdujesz.master
to domyślna gałąź tworzona podczas inicjowania repozytorium git (npgit init
.).Możesz usunąć
master
gałąź (npgit branch -D master
.). Nie można usunąćHEAD
wskaźnika.źródło
HEAD
to wskaźnik / etykieta do ostatniego zatwierdzenia gałęzi, w której aktualnie jesteś.” Myślę, że to w najlepszym razie wprowadza w błąd. Jeśli kasujesz starsze zatwierdzenie, HEAD jest teraz wskaźnikiem do tego starszego zatwierdzenia, a nie do ostatniego zatwierdzenia. Dobrze?checkout
polecenie jest równoważne przełączaniu gałęzi w innych popularnych systemach SCM.HEAD
tak naprawdę jest wskaźnik Git . Doceniam twój komentarz i myślę, że inni też. Treść mojego oryginalnego postu wraz z komentarzem uzupełniającym się uzupełniają. Dzięki.Po prostu wciśnij zmiany swojego obecnego oddziału
i popchnie
B
„zmiany twojego oddziału doorigin/B
”.Jeśli jesteś w
master
oddziale, git będzie naciskać naorigin/master
.W rzeczywistości wypchnie wszystkie zmiany w lokalnych oddziałach, które mają pasujące zdalne oddziały w
origin
. Jest kontrolowany przez ustawienie konfiguracyjne push.default .Zobacz także wypychanie RefSpecs w książce Pro Git .
Co widzisz jest sidebar reprezentujących wszystkie refspecs swojej zdalnego repo w rozwidleniu Experimental GitX w projekcie GitX .
HEAD
Wyznaczy domyślny oddział dla tego pilota.Zobacz
git remote set-head
stronę podręcznika :źródło