Wie in den Kommentaren behandelt: git remote add otherRepo …
konfiguriert nur die Fernbedienung, es holt nichts davon ab. Sie müssen git fetch otherRepo
ausführen, um die Zweige des Remote-Repositorys abzurufen, bevor Sie lokale Zweige basierend darauf erstellen können.
(zu weiteren Kommentar von OP reagiert)
Wenn Sie nur den Überblick über einen einzelnen Zweig von der Remote-Repository halten möchten, können Sie Ihre Remote-Eigentum holen neu konfigurieren (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
Nach diesem git fetch otherRepo
wird die Remote-Repository master
Zweig in den otherRepo/master
‚Remote-Tracking-Zweig‘ in Ihrem lokalen Repository nur holen.
Um Bereinigung der anderen ‚remote Tracking-Zweige‘, könnten Sie löschen sie alle und wieder holen nur die, die Sie wollen, oder Sie können selektiv alle löschen, außer nur die, die Sie wollen:
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 mehrere entfernte Zweigstellen verfolgen möchten, aber nicht alle, können Sie mehrere Abrufkonfigurationen verwenden (mit git config --add remote."$remoteName".fetch …
oder git config --edit
, um die Zeile in der Konfigurationsdatei Ihres Repositorys direkt zu duplizieren und zu bearbeiten).
Wenn Sie auch verhindern möchten, dass Tags von der Remote abgerufen werden, konfigurieren Sie die Tagopt-Eigenschaft Ihrer Remote (remote.otherRepo.tagopt
).
git config remote."$remoteName".tagopt --no-tags
# i.e. # git config remote.otherRepo.tagopt --no-tags
Haben Sie 'git fetch otherRepo' vor dem Verzweigen versucht? 'git remote add' konfiguriert nur die Fernbedienung, es führt nicht automatisch einen Abruf durch. Wenn Sie es bereits abgerufen haben, sind Sie sicher, dass es einen Zweig namens Master hat? 'git branch -r' oder' git remote show -n otherRepo' (* nach dem Abrufen *), um zu prüfen, welche Zweige es hat. –
@crhis: Danke, jetzt funktioniert es. Es scheint logisch, dass ich alle anderen Zweige von anderen repo auch holen muss, wie auch immer es hinzugefügt wird. Kann ich nur andereRepo/Master holen? Ich will den Zweig -r nicht überladen. –