Pchałem do zdalnego repozytorium Bitbucket, a ostatnio mój kolega przesłał nową gałąź, którą utworzył, do tego samego repozytorium.
Próbuję pobrać przesłane przez niego zmiany.
$ git branch -a
* master
localbranch1
localbranch2
remotes/origin/master
$ git branch -r pochodzenie / wzorzec
W interfejsie użytkownika sieci Bitbucket widzę utworzoną przez niego gałąź. W jaki sposób mogę to zrobić?
Następna próba:
$ git fetch bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
Jeśli utworzona przez niego gałąź nazywa się new_branch_b, czy powinienem spodziewać się następującego komunikatu?
$ git branch -r
origin/master
origin/new_branch_b
Trzecia próba:
$ git remote update
Fetching bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
$ git branch -r
origin/master
Czwarta próba:
[remote "bitbucket"]
url = https://[email protected]/user/repo.git
Zadzwoniłem bitbucket
raczej do pilota niż pochodzenia (przynajmniej to pamiętam; ustawiłem to jakiś czas temu)
Piąta próba:
Zaktualizowałem zdalną konfigurację Bitbucket zgodnie z odpowiedzią kan :
$ git config -e
[remote "bitbucket"]
url = https://[email protected]/user/repo.git
fetch = +refs/heads/*:refs/remotes/bitbucket/*
Dla większości ludzi będzie to nazywane pochodzenie:
[remote "origin"]
url = https://[email protected]/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
Potem,
$ git remote update
Fetching bitbucket
Password for 'https://[email protected]':
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 35 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (35/35), done.
From https://bitbucket.org/user/repo
* [new branch] branch_name1 -> origin/branch_name1
* [new branch] branch_name2 -> origin/branch_name2
.... i tak dalej.
Myślę, git fetch origin
że też by działał dla git remote update
.
refs/remotes/bitbucket/*
zamiast tego miało większy sensrefs/remotes/origin/*
.git fetch origin
spełnia swoje zadanieOdpowiedzi:
remote
Sekcja określa również zasady pobierania. Możesz dodać do niego coś takiego, aby pobrać wszystkie gałęzie z pilota:(Lub wymienić
origin
zbitbucket
).Przeczytaj o tym tutaj: 10.5 Git Internals - The Refspec
źródło
fetch = +refs/heads/master:refs/remotes/origin/master
dla mnie. Wymianamaster
z*
ustalonym mojego problemu.git clone
projekt. Nie przypominam sobie, bym zrobił coś specjalnego z moim lokalnym dupkiem.clone
zostało przerwane, a następnie wznowione? Czy coś innego jednocześnie uzyskało dostęp do repozytorium?Zaktualizuj pilota, jeśli nadal tego nie zrobiłeś:
źródło
git remote update
jak mogę zobaczyć nową gałąź w interfejsie użytkownika. Dziękigit branch -r
. Na git-scm.com/docs/git-branch jest napisane „Opcja -r powoduje wyświetlenie gałęzi zdalnego śledzenia, a opcja -a pokazuje zarówno gałęzie lokalne, jak i zdalne”.git remote update
pobiera wszystkie gałęzie wszystkich pilotów wymienionych wgit remote -v
.git checkout origin/master
a następnie rozgałęziłem się z odłączonej głowy do mojej głównej gałęzigit branch master; git checkout master
Jeśli sklonujesz z
--depth
parametrem, ustawia.git/config
nie pobieranie wszystkich gałęzi, ale tylko master.Możesz po prostu pominąć parametr lub zaktualizować plik konfiguracyjny z
do
źródło
.git/config
, aby ludzie mogli go znaleźć.Miałem ten sam problem. Wydaje się, że najłatwiejszym rozwiązaniem jest po prostu usunięcie pilota, ponowne jego odczytanie i pobranie.
źródło
git remote -v
pokaże Ci Twoje piloty, abyś mógł uzyskać adres URL,git remote rm origin
usunie go,git remote add origin <url>
doda ponownie.warning: ignoring broken ref refs/remotes/origin/HEAD
Niestety,
git branch -a
igit branch -r
czy nie pokazać wszystkie zdalnych oddziałów, jeśli nie wykonywane jest „git fetch”.git remote show origin
działa konsekwentnie przez cały czas.git show-ref
Pokazuje również wszystkie odwołania w repozytorium Git. Jednak działa tak jakgit branch
polecenie.źródło