Mam zdalne nagie repozytorium hub
. Pracuję tylko w master
oddziale. Ostatnie zdanie tego komunikatu o błędzie powoduje, że zastanawiam się: w jaki sposób mogę dowiedzieć się, który jest „domyślnie skonfigurowanym pilotem dla bieżącej gałęzi” ? I jak to ustawić?
[myserver]~/progs $ git remote -v
hub ~/sitehub/progs.git/ (fetch)
hub ~/sitehub/progs.git/ (push)
[myserver]~/progs $ git branch -r
hub/master
[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master
[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
git
git-push
remote-branch
leonbloy
źródło
źródło
git pull hub master
?Możesz to zrobić prościej, gwarantując, że
.gitconfig
pozostaniesz w znaczącym stanie:Korzystanie z Gita w wersji v1.8.0 i nowszej
git push -u hub master
podczas pchania lub:git branch -u hub/master
LUB
(Spowoduje to ustawienie pilota dla aktualnie wyewidencjonowanego oddziału na
hub/master
)git branch --set-upstream-to hub/master
LUB
(Spowoduje to ustawienie pilota do oddziału o nazwie
branch_name
dohub/master
)git branch branch_name --set-upstream-to hub/master
Jeśli używasz
v1.7.x
lub wcześniejmusisz użyć
--set-upstream
:git branch --set-upstream master hub/master
źródło
set-upstream[-to]
Polecenie zmienia obecnie skonfigurowana pilota. Oryginalny plakat zapytał o domyślnie skonfigurowanego pilota. Z pewnością nie jest to ta sama koncepcja?--set-upstream-to
dokonał dokładnie takich samych zmian,.git/config
jakie sugerował @scragz w swojej odpowiedzi .Dla kompletności: poprzednie odpowiedzi mówią, jak ustawić odgałęzienie, ale nie, jak to zobaczyć.
Można to zrobić na kilka sposobów:
git branch -vv
pokazuje te informacje dla wszystkich gałęzi. (sformatowane na niebiesko w większości terminali)cat .git/config
pokazuje to również.Na przykład:
źródło
polecenie, aby uzyskać skuteczny zdalny push dla gałęzi, np. master, to:
git config branch.master.pushRemote || git config remote.pushDefault || git config branch.master.remote
Oto dlaczego (z wyniku „man git config”):
branch.name.remote [...] informuje git fetch i git push, który pilot do pobrania z / push do [...] [dla push] może zostać zastąpiony zdalnym.pushDefault (dla wszystkich gałęzi) [i] dla aktualny oddział [..] dodatkowo przesłaniany przez branch.name.pushRemote [...]
Z jakiegoś powodu „man git push” mówi tylko o branch.name.remote (nawet jeśli ma najmniejszy priorytet z trzech) + błędnie stwierdza, że jeśli nie jest ustawiony, push domyślnie do źródła - nie, to po prostu że po sklonowaniu repozytorium gałąź.nazwa.zdatkowa jest ustawiona na początek, ale jeśli usuniesz to ustawienie, git push nie powiedzie się, nawet jeśli nadal masz zdalny początek
źródło