Sklonowałem repozytorium git, a następnie pobrałem tag:
# git checkout 2.4.33 -b my_branch
To jest w porządku, ale kiedy próbuję uruchomić git pull
w moim oddziale, git wypluwa ten błąd:
Brak informacji o śledzeniu dla bieżącego oddziału. Określ oddział, z którym chcesz się połączyć. Szczegółowe informacje można znaleźć w git-pull (1)
git pull <remote> <branch>
Jeśli chcesz ustawić informacje o śledzeniu dla tej gałęzi, możesz to zrobić za pomocą:
git branch --set-upstream new origin/<branch>
Chcę git pull
tylko zaktualizować gałąź główną i zostawić moją obecną gałąź w spokoju (i tak jest to tag). Czy coś takiego jest możliwe?
Powodem tego jest to, że mam automatyczny skrypt, który zawsze git ściąga repozytorium i oczywiście kończy się niepowodzeniem z powodu powyższego błędu.
git
git-pull
git-checkout
alesko
źródło
źródło
Odpowiedzi:
Edycja: w przypadku nowszych wersji Git
--set-upstream master
został wycofany,--set-upstream-to
zamiast tego należy użyć :Zgodnie z monitem możesz po prostu uruchomić:
Następnie możesz po prostu uruchomić
git pull
aktualizację kodu.źródło
git checkout master
. Nie mogłem tego zrobić,git pull
ponieważ utracono odniesienie do pochodzenia. Teraz działa. Dziękuję Ci!Miałem ten sam problem i naprawiłem go tym poleceniem:
Z pliku pomocy -u w zasadzie ustawia wartość domyślną dla pull:
źródło
Wypróbuj te polecenia:
źródło
Wróć do gałęzi głównej za pomocą
a następnie uruchom
git pull
operacjęNastępnie możesz wrócić do swojego
my_branch
.źródło
@alesko : nie można zrobić tylko
git pull
po kasie,my_branch
aby zaktualizowaćmaster
tylko oddział.Ponieważ
git pull
zostanie również scalony z bieżącą gałęzią -> w Twoim scenariuszu zmy_branch
@Simon : to wystarczy. dlaczego?
i według dokumentów:
źródło
Najpierw upewnij się, że jesteś na właściwej gałęzi.
Następnie (tylko raz):
Następnie to działa ponownie:
źródło
Możesz mieć wiele oddziałów. A twoja obecna gałąź nie ustawiła swojego upstream w zdalnym.
Kroki, aby to naprawić:
na przykład
Po zrobieniu tego, kiedy to zrobisz
git pull
, wyciąga z określonej gałęzi.źródło
Możesz określić, którą gałąź chcesz wyciągnąć:
Lub możesz skonfigurować to tak, aby lokalna gałąź główna śledziła gałąź główną github jako nadrzędną:
To śledzenie gałęzi jest konfigurowane automatycznie, gdy klonujesz repozytorium (tylko dla domyślnej gałęzi), ale jeśli dodasz zdalne sterowanie do istniejącego repozytorium, musisz samodzielnie skonfigurować śledzenie. Na szczęście porady udzielone przez git sprawiają, że łatwo zapamiętać, jak to zrobić.
--set-upstream jest najwyraźniej przestarzałe w git 1.9.x. Idąc dalej, chciałbyś użyć czegoś takiego
zakładając, że sprawdziłeś już mistrza. Jeśli nie,
git branch -u origin/master master
zadziałaźródło
Spróbuj tego
źródło
Jeśli tak jak ja musisz to robić przez cały czas, możesz ustawić alias, aby robił to automatycznie, dodając do swojego
.gitconfig
pliku:Kiedy zobaczysz komunikat
There is no tracking information...
, po prostu biegnijgit set-upstream
, a potemgit push
ponownie.Dzięki https://zarino.co.uk/post/git-set-upstream/
źródło
Musisz skonfigurować śledzenie (upstream) dla bieżącej gałęzi
Jest już przestarzałe, zamiast tego możesz użyć flagi --track
Podoba mi się również odniesienie do dokumentu, które @casey zauważa:
źródło
U mnie zadziałało: git branch --set-upstream-to = origin master. Kiedy ponownie wyciągnąłem polecenie, otrzymałem tylko aktualizacje od mastera i ostrzeżenie zniknęło.
źródło
Aby pobrać aktualizacje:
Jednak to tylko aktualizuje odwołanie o nazwie
origin/master
. Najlepszym sposobem na zaktualizowanie lokalnegomaster
byłoby wyewidencjonowanie / scalenie wspomniane w innym komentarzu. Jeśli można zagwarantować, że lokalnymaster
nie odbiegał od głównego pnia, któraorigin/master
jest włączona, to mógłby użyćgit update-ref
do mapowania prądmaster
do nowego punktu, ale to chyba nie jest najlepszym rozwiązaniem, aby używać regularnie ...źródło
To polecenie jest przestarzałe:
git branch --set-upstream master origin/master
Tak więc, próbując skonfigurować śledzenie, to polecenie działało dla mnie:
źródło