Tylko wyjaśnienie (za pomocą gita w wersji 1.7.9.5 na Ubuntu 12.04):
Git doda / usunie piloty. Są to zdalne wystąpienia git z podłączonym serwerem.
git remote add myremote git://remoteurl
Następnie możesz pobrać repozytorium git w następujący sposób:
git fetch myremote
Wygląda na to, że tworzy gałąź o nazwie „myremote”, jednak pilot dla gałęzi nie jest ustawiany automatycznie. Aby to zrobić, musisz wykonać następujące czynności:
Najpierw sprawdź, czy masz ten problem, tj
git config -l | grep myremote
Powinieneś zobaczyć coś takiego:
remote.myremote.url=git://remoteurl
remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/*
branch.myremote.remote=.
branch.myremote.merge=refs/heads/master
Jeśli widzisz branch.myremote.remote=.
, powinieneś kontynuować:
git config branch.myremote.remote myremote
git checkout myremote
git pull
Powinieneś teraz być na bieżąco ze zdalnym repozytorium, a twoje ściągnięcia / wypychania powinny być powiązane z odpowiednim pilotem. W ten sposób możesz przełączać piloty dla poszczególnych oddziałów . [Notatka 1]
Zgodnie z oficjalną dokumentacją konfiguracji Git , możesz ustawić domyślną gałąź push (po prostu wyszukaj remote.pushdefault na tej stronie), jednak pamiętaj, że nie wpłynie to na repozytoria / gałęzie, które już istnieją, więc będzie działać, ale tylko dla nowych repozytoriów / oddziałów. Powinieneś pamiętać, że --global
ustawi specyficzne dla użytkownika wartości domyślne repozytorium (~ / .gitconfig), --system
ustawi ogólnosystemowe wartości domyślne repozytorium (/ etc / gitconfig), a żadna flaga nie ustawi opcji konfiguracji dla bieżącego repozytorium (./.gitconfig).
Należy również zauważyć, że opcja konfiguracji push.default służy do konfigurowania zachowania specyfikacji , a nie zachowania zdalnego .
[1]: git branch --set-upstream myotherremote
zwykle działałby tutaj, jednak git będzie narzekał, że jeśli nie git branch --set-upstream myremote
zostanie użyty, nie ustawi gałęzi jako własnego pilota . Uważam jednak, że jest to nieprawidłowe zachowanie.