Was macht git --set-upstream
?
Ich habe versucht, es zu verstehen, indem ich das git Handbuch gelesen habe, aber ich habe es nicht ganz verstanden.
Was macht git --set-upstream
?
Ich habe versucht, es zu verstehen, indem ich das git Handbuch gelesen habe, aber ich habe es nicht ganz verstanden.
--set-upstream
geht nicht nur um git branch -u
oder git push -u
.
Du hast auch git fetch --set-upstream
und git pull --set-upstream
.
Wenn der Remote erfolgreich geholt wird, füge den Upstream (Tracking)-Verweis hinzu, der von argumentlosen
git pull
und anderen Befehlen verwendet wird
Es wird eingestellt:
branch..remote
branch..merge
Dadurch kann git push
wissen, wohin gepusht werden soll, und auf welchen Remote-Branch.
Aber: "git fetch --set-upstream
"(man) hat nicht überprüft, ob es einen aktuellen Branch gibt, was zu einem Segfault führt, wenn es auf einem detached HEAD ausgeführt wird, was mit Git 2.35 (Q1 2022) behoben wurde.
Siehe Commit 17baeaf (07. Dez 2021) von Ævar Arnfjörð Bjarmason (avar
).
(Eingefügt von Junio C Hamano -- gitster
-- in Commit dcaf17c, 22. Dez 2021)
pull, fetch
: Fehler bei segfault in --set-upstream-OptionGemeldet von: Clemens Fruhwirth
Gemeldet von: Jan Pokorný
Unterzeichnet von: Ævar Arnfjörð BjarmasonBehebe einen segfault in der
--set-upstream
-Option, hinzugefügt in 24bc1a1 (pull, 19. Aug 2019, Git v2.24.0-rc0 -- Merge aufgeführt in batch #2) (pull, fetch:Add
(man)--set-upstream
-Option, 19. Aug 2019) hinzugefügt in v2.24.0.Der dort hinzugefügte Code hat nicht die gleiche Überprüfung durchgeführt wie wir sie für "
git branch
"(man) selbst machen, da 8efb889 ("Branch
: segfault fixes and validation", 23. Feb 2013, Git v1.8.3-rc0 -- Merge aufgeführt in batch #2), was wiederum den gleichen Segfault-Typ behoben hat, den ich jetzt in "git branch --set-upstream-to
"(man), siehe 6183d82 ("branch
:--set-upstream-to
einfügen", 20. Aug 2012, Git v1.8.0-rc0 -- Merge aufgeführt in batch #5).Die hier hinzugefügte Warnmeldung ist eine Zusammenstellung des Fehlers, der für "
git branch
" in 8efb889 hinzugefügt wurde, und der Fehlerausgabe, dieinstall_branch_config()
selbst ausgibt, d.h.
es entfernt "refs/heads/
" aus dem Namen und sagt "branch X on remote
", nicht "branch refs/heads/X on remote
".
Neue Warnung:
Konnte den Upstream von HEAD nicht auf 'X' von 'X' setzen
wenn er nicht auf einen Branch zeigt
Ich denke, es würde mehr Sinn machen, hier einfach
sterben()
, aber in den anderen Überprüfungen für--set-upstream
hinzugefügt in 24bc1a1, geben wir stattdessen eine Warnung() aus.
Lass uns das hier vorerst aus Konsistenzgründen genauso machen.Es gab eine früher eingereichte alternative Möglichkeit, dies in diesem Thread zu beheben, aufgrund dessen das Patchen das Threading mit dem ursprünglichen Bericht in diesem Thread unterbrochen hat.
Ich habe es nicht bemerkt, bevor ich diese Version verfasst habe.
Ich denke, die hier detailliertere Warnmeldung ist besser, und wir sollten auch Tests für dieses Verhalten haben.Die
--no-rebase
-Option für "git pull
"(man) wird benötigt seit dem kürzlich fusionierten 7d0daf3 ("Merge Zweig 'en/pull-conflicting-options'", 30. Aug 2021, Git v2.34.0-rc0 -- Merge aufgeführt in batch #2).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.