Wie in den Kommentaren beschrieben: git remote add otherRepo …
konfiguriert nur die Fernbedienung, es holt nichts von ihr ab. Sie müssen Folgendes ausführen git fetch otherRepo
um die Zweige des entfernten Repositorys zu holen, bevor Sie lokale Zweige auf der Grundlage dieser Zweige erstellen können.
(als Antwort auf einen weiteren Kommentar von OP)
Wenn Sie nur einen einzigen Zweig des entfernten Repositorys verfolgen wollen, können Sie die fetch-Eigenschaft ( remote.otherRepo.fetch
).
# done as a shell function to avoid repeating the repository and branch names
configure-single-branch-fetch() {
git config remote."$1".fetch +refs/heads/"$2":refs/remotes/"${1}/${2}"
}
configure-single-branch-fetch "$remoteName" "$branch"
# i.e. # configure-single-branch-fetch otherRepo master
Hiernach, git fetch otherRepo
holt nur den Inhalt des entfernten Repositorys master
Verzweigung in die otherRepo/master
Remote-Tracking-Zweig' in Ihrem lokalen Repository.
Um die anderen "entfernten Verfolgungszweige" zu bereinigen, können Sie alle löschen und nur den gewünschten Zweig erneut abrufen, oder Sie können selektiv alle Zweige außer dem gewünschten Zweig löschen:
git for-each-ref --shell --format='git branch -dr %(refname:short)' refs/remotes/otherRepo | sh -nv
# remove the -nv if the commands look OK, then
git fetch otherRepo
# OR
git for-each-ref --shell --format='test %(refname:short) != otherRepo/master && git branch -dr %(refname:short)' refs/remotes/otherRepo | sh -nv
# remove the -nv if the commands look OK
Wenn Sie entscheiden, dass Sie mehr als einen entfernten Zweig verfolgen wollen, aber nicht alle, können Sie mehrere Fetch-Konfigurationen haben (mit git config --add remote."$remoteName".fetch …
oder durch die Verwendung von git config --edit
um die Zeile in der Konfigurationsdatei Ihres Repositorys direkt zu duplizieren und zu bearbeiten).
Wenn Sie auch das Abrufen von Tags von der Gegenstelle vermeiden wollen, konfigurieren Sie die Eigenschaft tagopt Ihrer Gegenstelle ( remote.otherRepo.tagopt
).
git config remote."$remoteName".tagopt --no-tags
# i.e. # git config remote.otherRepo.tagopt --no-tags
3 Stimmen
Haben Sie die
git fetch otherRepo
bevor Sie einen Abzweig versuchen?git remote add
konfiguriert nur die Fernbedienung, es wird nicht automatisch ein Abruf durchgeführt. Wenn Sie es bereits geholt haben, sind Sie sicher, dass es einen Zweig namens master hat?git branch -r
ogit remote show -n otherRepo
( nach dem Abholen ), um zu prüfen, welche Zweige er hat.0 Stimmen
@crhis: Danke, jetzt funktioniert es. Es scheint logisch, dass ich auch alle anderen Zweige von otherRepo holen muss, aber das fügt hinzu. Kann ich nur otherRepo/Master holen? Ich möchte branch -r nicht überladen.