
Ich habe ein Repo in /home/user/reponame
(Repo 1). Ich habe dieses Repo dann nach (Repo 2) geklont /tmp/reponame
. Ist es möglich, das Upstream-Repo von Repo 1 in Repo 2 zu ändern?
Andere Fragen, die ich gesehen habe, schlagen Verzweigungen vor, aber das ist nicht das, was ich hier suche. Wenn ich das tue git checkout -b test --track /tmp/reponame/master
, erhalte ich die Fehlermeldung /tmp/reponame/master is outside repository
.
Antwort1
Git verwendet den Begriff „Upstreams“ nicht für repository-weite Einstellungen. In der Git-Terminologie haben nur einzelne Zweige einen Upstream, und dieser kann nur auf einen anderen Zweig eingestellt werden, da sein Zweck darin besteht, als Abkürzung/Standard für Befehle wie zu dienen git merge <otherbranch>
. (Ihr git checkout
Befehl ist auch vollständig auf die Arbeit mit Zweigen ausgelegt.)
Stattdessen suchen Sie wahrscheinlich nach„Fernbedienungen“, die Repository-URLs speichern. Jeder neue Klon speichert seine Quell-URL in einem Remote mit dem Namen origin
. Wenn Sie also möchten, dass Repo 1 in Repo 2 pushen kann, können Sie git remote add
oder verwenden git remote set-url
(je nachdem, ob bereits ein Remote mit diesem Namen existiert oder nicht):
git remote add origin /tmp/reponame
git fetch origin
Alternative:
git config remote.origin.url /tmp/reponame
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Anschließend erfolgt häufig eine Aktualisierung der Upstreams pro Zweig, damit git pull
Folgendes funktioniert:
git branch --set-upstream-to="origin/master" master