Możesz powiedzieć Gitowi, aby ściągnął wszystkie gałęzie w ten sposób:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Jeśli zajrzysz do środka .git/config
, będzie wyglądać mniej więcej tak:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
Porównałem to z pełnym klonem i zobaczyłem, że jedyną różnicą było „pobieranie” poniżej [remote "origin"]
.
Uwaga: używam Git w wersji 1.8.2. Opcje konfiguracji mogły ulec zmianie, jeśli używasz starszej wersji Git. Jeśli moje polecenia nie działają, radzę przejrzeć, .git/config
aby zobaczyć, czy widzisz coś podobnego.
git
Narzędzie wiersza polecenia jest niezwykle silny (w rzeczywistości, większość poleceń są realizowane pod względem innych poleceń), więc można zrobić mnóstwo rzeczy z nim kiedyś zrozumiesz jak repozytorium jest określone (w zasadzie, w jaki sposób.git
działa folderu ).git show-ref tags
nadal się nie udają.git clone --depth=1 --branch branchname [email protected]:foobar/repo.git destinationpath
Jeśli chcesz dodać pojedynczy oddział, możesz wykonać następujące czynności:
Działa z git w wersji 1.9.1
źródło
fetch =
linii do .git / config, bardzo przydatne, gdy chcesz przełączać się między dwoma gałęziami na pilocie, ale nie chcesz pobierać całej grupy innych gałęzi. Dzięki!Aby dodać kolejną zdalną gałąź do mojego lokalnego repozytorium, które zostało sklonowane przy użyciu
--single-branch
, działa dla mnie następujące rozwiązanie:Możesz też użyć symboli wieloznacznych
[remote-branch]
npDziała to przy użyciu git w wersji 2.21.1 . Inne odpowiedzi sugerujące, aby to zrobić,
git fetch origin [remote-branch]:[local-branch]
nie zadziałały, ponieważ tworzy lokalny oddział w stanie nieśledzonym. Podczas uruchamianiagit pull
najpierw próbowałem scalić wszystkie zatwierdzenia zdalnego oddziału z moim lokalnym.źródło
Po prostu dodaj oryginalne repozytorium jako nowego pilota i zacznij pracować?
Możesz nawet usunąć swój obecny pilot zdalnego sterowania „pochodzenia” i zmienić nazwę „myNewOrigin” na „pochodzenie”, jeśli chcesz.
Stamtąd możesz wyciągnąć / scalić / ponownie bazować.
źródło
Wystarczy zmienić
.git/config
plik z lokalnego repo, liniafetch
od[remote origin] section
.Przed czymś takim
Po tym będzie tak
źródło
Początkowo zastosowałem odpowiedź Dominika Pawlaka i zadziałało. Ale nie mogłem wprowadzić żadnych dalszych zmian po tym, jak wprowadziłem więcej kodu do mojej nowej gałęzi.
Istnieje inny sposób całkowitego resetowania
single-branch
, o którym tutaj nie wspomniano:Spowoduje to zresetowanie wszystkiego do oryginału.
źródło
U mnie pracował:
źródło