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ć?
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ć?
Odpowiedzi:
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 (np git init
.).
Możesz usunąć master
gałąź (np git branch -D master
.). Nie można usunąć HEAD
wskaźnika.
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
git push origin
i popchnie B
„zmiany twojego oddziału do origin/B
”.
Jeśli jesteś w master
oddziale, git będzie naciskać na origin/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 :
Posiadanie domyślnej gałęzi dla pilota nie jest wymagane, ale umożliwia określenie nazwy pilota zamiast określonej gałęzi.
Na przykład, jeśli domyślna gałąź dlaorigin
jest ustawiona namaster
, toorigin
można ją podać tam, gdzie normalnie byś ją określiłorigin/master
.