Zgodnie z komentarzem: git remote add otherRepo …
konfiguruje tylko pilota, nie pobiera z niego niczego. Będziesz musiał uruchomić git fetch otherRepo
, aby pobrać gałęzie zdalnego repozytorium, zanim będziesz mógł tworzyć lokalne gałęzie na ich podstawie.
(odpowiadając na dalszych komentarzy przez OP)
Jeśli tylko chcesz śledzić jeden oddział ze zdalnego repozytorium, można ponownie skonfigurować pilota pobierał nieruchomości (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
Po tym, git fetch otherRepo
pobierze tylko zdalnego repozytorium za master
oddziału do oddziału zdalnego śledzenia „” otherRepo/master
w lokalnym repozytorium.
Do czyszczenia pozostałe „zdalnych oddziałów śledzenia”, można je wszystkie usunąć i ponownie pobrać tylko jeden chcesz, czy można selektywnie usunąć wszystkie z nich z wyjątkiem tylko jednej chcesz:
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
Jeśli zdecydujesz, że chcesz śledzić więcej niż jedną zdalną gałąź, ale nie wszystkie, możesz mieć wiele konfiguracji pobierania (z git config --add remote."$remoteName".fetch …
lub używając git config --edit
, aby bezpośrednio powielić i edytować wiersz w pliku konfiguracyjnym twojego repozytorium).
Jeśli chcesz również uniknąć pobierania znaczników z pilota, skonfiguruj właściwość tagopt na pilocie (remote.otherRepo.tagopt
).
git config remote."$remoteName".tagopt --no-tags
# i.e. # git config remote.otherRepo.tagopt --no-tags
Czy wykonałeś polecenie 'git fetch otherRepo' przed próbą rozgałęzienia? 'git remote add' po prostu konfiguruje pilota, nie pobiera automatycznie. Jeśli już ją pobrałeś, czy jesteś pewien, że ma ona gałąź o nazwie master? 'git branch -r' lub' git remote show -n innyRepo' (* po pobraniu *), aby sprawdzić, które gałęzie ma. –
@crhis: dziękuję, teraz to działa. Wydaje się logiczne, że muszę pobrać, ale to dodaje, wszystkie inne gałęzie z innychRepo też. Czy mogę po prostu pobrać inne wzorce/wzorce? Nie chcę zaśmiecać gałęzi -r. –