Co robi „--set-upstream”?

327

Co robi git --set-upstream?

Próbowałem to zrozumieć, czytając instrukcję git , ale nie całkiem to zrozumiałem .

Евгений Масленков
źródło
13
Wprowadzono nową opcję, --set-upstream-toktóra została wprowadzona z powodu nieporozumień (IIRC) na etapie konfiguracji.
Philip Oakley,

Odpowiedzi:

411
git branch --set-upstream <remote-branch>

ustawia domyślną gałąź zdalną dla bieżącej gałęzi lokalnej.

Każde przyszłe git pullpolecenie (z wyewidencjonowanym bieżącym oddziałem lokalnym)
będzie próbowało wprowadzić zatwierdzenia z<remote-branch> bieżącego oddziału lokalnego.


Jednym ze sposobów uniknięcia konieczności jawnego pisania --set-upstreamjest użycie jego flagi skrótu -uw następujący sposób:

git push -u origin local-branch

To automatycznie ustawia powiązanie upstream dla przyszłych prób push / pull.
Aby uzyskać więcej informacji, zapoznaj się z tym szczegółowym wyjaśnieniem na temat odgałęzień i śledzenia .


Aby uniknąć nieporozumień, najnowsze wersje gitprzestarzałe tej nieco niejednoznacznej --set-upstreamopcji na rzecz bardziej szczegółowej --set-upstream-toopcji o identycznej składni i zachowaniu

git branch --set-upstream-to <origin/remote-branch>
TheCodeArtist
źródło
7
Flaga --set-upstream jest przestarzała i zostanie usunięta. Rozważ użycie --track lub --set-upstream-to
Rohit Singh Sengar
1
w tym poleceniu git push -u origin local-branchco originreprezentuje? Czy jest jakiś przypadek, w którym wpisałbym coś innego niż originpo -u?
John Henckel,
2
@JohnHenckel originodnosi się do zdalnego repozytorium git, którego użyto do klonowania. Może istnieć wiele zdalnych repozytoriów git . W takim przypadku originmożna zastąpić odpowiednią nazwą żądanego pilota, do którego chce się odwoływać.
TheCodeArtist
zrób, git remote -vaby znaleźć swoje piloty, domyślnie jest originto
xploreraj
39

Kiedy naciskasz na pilota i używasz --set-upstreamflagi git, ustawiasz gałąź, do której naciskasz, jako gałąź zdalnego śledzenia gałęzi, którą naciskasz.

Dodanie zdalnego śledzenia środków oddziałów, które następnie git wie, co chcesz zrobić, gdy git fetch, git pulllubgit push w przyszłości. Zakłada, że ​​chcesz zachować synchronizację gałęzi lokalnej i gałęzi zdalnej, którą śledzi, i podejmuje odpowiednie działania, aby to osiągnąć.

Możesz osiągnąć to samo za pomocą git branch --set-upstream-tolub git checkout --track. Aby uzyskać więcej informacji, zobacz strony pomocy git w gałęziach śledzenia .

Będzie
źródło
Kiedy kasuję za pomocą -t, ustawia upstream do pchania, tylko do pchania.
Jim
8

git branch --set-upstream <<origin/branch>> nie jest już oficjalnie wspierany i został zastąpiony przez git branch --set-upstream-to <<origin/branch>>

Turbut Alin
źródło