Gdy uczę się o git, wciąż spotykam się z terminami HEAD, master, origin i nie jestem pewien, jakie są różnice. Jeśli rozumiem poprawnie, HEAD jest zawsze równy najnowszej wersji? A jeśli tak, to czy jest to najnowsza wersja całego repozytorium, czy konkretnej gałęzi czy znacznika? To jest takie mylące. Przeczytałem wiele tutoriali na ten temat i rzeczy takie jak rozgałęzianie/scalanie, ale wciąż nie mogę tego objąć.Jakie są koncepcje GIT HEAD, master, origin?
Odpowiedz
Bardzo polecam książkę "Pro Git" by Scott Chacon. Poświęć trochę czasu i naprawdę przeczytaj, podczas odkrywania rzeczywistego repozytorium git tak jak Ty.
HEAD: bieżące zatwierdzenie repo jest włączone. W większości przypadków HEAD
wskazuje na ostatnie zatwierdzenie w Twoim oddziale, ale nie musi tak być. HEAD
oznacza po prostu "na co obecnie wskazuje moje repozytorium".
W przypadku, gdy zatwierdzenie HEAD
nie jest wierzchołkiem jakiejkolwiek gałęzi, jest to nazywane "odłączoną głową".
master: nazwa domyślnego odgałęzienia tworzonego przez git przy pierwszym tworzeniu repozytorium. W większości przypadków "master" oznacza "główny oddział". W większości sklepów wszyscy starają się opanować, a mistrz jest uważany za ostateczny pogląd na repozytorium. Ale często zdarza się, że gałęzie wyzwolenia są usuwane z mistrza do uwolnienia. Twoje lokalne repozytorium ma swój własny master, który prawie zawsze podąża za mistrzem zdalnego repo.
pochodzenie: domyślna nazwa, którą git nadaje twojemu głównemu zdalnemu repozytorium. Twoje pudełko ma swoje własne repozytorium i najprawdopodobniej wypchnie cię do jakiegoś zdalnego repo, do którego ty i wszyscy twoi współpracownicy popchniecie. To zdalne repozytorium prawie zawsze jest nazywane początkiem, ale nie musi tak być.
HEAD
to oficjalne pojęcie w git. HEAD
zawsze ma dobrze zdefiniowane znaczenie. master
i origin
to popularne nazwy używane zwykle w git, ale nie muszą.
HEAD
nie jest najnowszą wersją, jest to wersja aktualna wersja. Zwykle jest to najnowsza wersja bieżącego oddziału, ale nie musi tak być.
master
to nazwa najczęściej podawana do głównej gałęzi, ale można ją nazwać wszystkim innym (lub nie może istnieć główna gałąź).
origin
to nazwa powszechnie podawana dla głównego pilota. remote to kolejne repozytorium, z którego możesz pobierać i naciskać. Zwykle jest na jakimś serwerze, takim jak github.
Czy możesz podać przykład, kiedy HEAD jest aktualne, ale nie najnowsze? Nigdy wcześniej tego nie widziałem. Czy masz na myśli, że może nie być najnowszym, ponieważ twoja filia znajduje się za oddziałem zdalnym, który śledzi? –
@MattGreer: Jeśli wypiszesz coś starszego (np. Tag, np. 'Git checkout v1.1'), to HEAD zmieni się na zatwierdzenie tego tagu. To może nie być ostatni commit. –
Chociaż nie odpowiada to bezpośrednio na pytanie, dostępna jest darmowa darmowa książka, która pomoże Ci poznać podstawy o nazwie ProGit. Jeśli wolisz wersję z martwym drewnem do kolekcji bitów, możesz kupić ją od Amazon.
Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – nha
- 1. git pull origin master nie aktualizuje origin/master?
- 2. Czy istnieje jakaś różnica między `git merge origin master` i` git merge origin/master`?
- 3. Git, Jak zresetować origin/master do commit?
- 4. Jakie jest znaczenie resetowania git - hard origin/master?
- 5. Git Diff między HEAD i SVN Master
- 6. git fetch, FETCH_HEAD i origin/master
- 7. Czym różni się "origin master" od "origin/master"
- 8. Co oznacza git push origin HEAD?
- 9. Jaka jest różnica między `git reset --hard master` i` git reset --hard origin/master`?
- 10. Git. Zdalny HEAD jest niejednoznaczny
- 11. Jak przenieść master do HEAD?
- 12. Różnica między git push origin master i git push
- 13. Git HEAD pochodzenie ciągnąć
- 14. git - Twój oddział wyprzedza 'origin/master' przez 1 commit
- 15. Git Push origin Master Hangs - cygwin w/windows 7
- 16. Git refs/remote/origin/master nie wskazuje na poprawny obiekt
- 17. Dlaczego git push origin master draw ASCII art?
- 18. Dlaczego git nie rozpoznaje "origin/master" jako prawidłowej nazwy obiektu?
- 19. Błąd Git: Nie można dołączyć do pliku .git/logs/refs/remote/origin/master: Odmowa uprawnień
- 20. Czy "refs/heads/master" jest takie samo jak "refs/remote/origin/master" w Git?
- 21. git push origin master kończy się niepowodzeniem i daje błąd: src refspec HEAD nie pasuje do żadnej
- 22. git: Dlaczego wyprzedzam origin/master z X commitami po tym, jak zrobiłem "git push"?
- 23. Jakie są strategie scalania git?
- 24. Różnica między ciągiem git. master vs git merge master
- 25. Git detached head issue
- 26. Oświadczenie Git "NO-HEAD"
- 27. ! [odrzucone] master -> master (pobierz najpierw)
- 28. Git: przenieś HEAD z powrotem do poprzedniego zatwierdzenia
- 29. Jak mogę przywrócić `git fetch upstream; git merge upstream/master`?
- 30. Błąd polecenia Git: "origin nie wydaje się być repozytorium git"
Co masz na myśli przez "HEAD naprawdę znaczy po prostu" na co wskazuje moje repo "." Jeśli istnieje wiele gałęzi w repozytorium, który z nich jest HEAD według Ciebie? jeśli istnieją 3 gałęzie (wraz z wzorcem), a zatwierdzenie potrzeby zostało wykonane w oddziale A, HEAD może nadal być w zatwierdzeniu "kapitana". Więc, która z nich jest poprawką, którą teraz wskazuje repo? – OK999