J'ai un référentiel nu à distance hub
. Je travaille uniquement dans la master
branche. La dernière phrase de ce message d'erreur ci-dessous me fait me demander: comment savoir quelle est la "télécommande configurée par défaut pour votre branche actuelle" ? Et comment le définir?
[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
la source
la source
git pull hub master
?Vous pouvez le faire plus simplement, en garantissant que votre
.gitconfig
est laissé dans un état significatif:Utilisation de Git version v1.8.0 et supérieure
git push -u hub master
en poussant, ou:git branch -u hub/master
OU
(Cela va régler la télécommande pour la branche check-out actuellement à
hub/master
)git branch --set-upstream-to hub/master
OU
(Cela va régler la télécommande pour la branche nommée
branch_name
àhub/master
)git branch branch_name --set-upstream-to hub/master
Si vous utilisez
v1.7.x
ou plus tôtvous devez utiliser
--set-upstream
:git branch --set-upstream master hub/master
la source
set-upstream[-to]
commande modifie la télécommande actuellement configurée. L'affiche originale a posé des questions sur la télécommande configurée par défaut . Ce n'est sûrement pas tout à fait le même concept?--set-upstream-to
fait exactement les mêmes changements.git/config
que @scragz a suggéré dans sa réponse .Par souci d'exhaustivité: les réponses précédentes indiquent comment définir la branche amont, mais pas comment la voir.
Il y a quelques façons de le faire:
git branch -vv
affiche cette information pour toutes les branches. (formaté en bleu dans la plupart des terminaux)cat .git/config
le montre aussi.Pour référence:
la source
la commande pour obtenir la télécommande push efficace pour la branche, par exemple, maître, est:
git config branchement.master.pushRemote || git config remote.pushDefault || git config branchement.master.remote
Voici pourquoi (à partir de la sortie "man git config"):
branch.name.remote [...] indique à git fetch et git push de quelle télécommande chercher / push vers [...] [pour push] peut être remplacé par remote.pushDefault (pour toutes les branches) [et] pour le branche actuelle [..] outre surchargée par branch.name.pushRemote [...]
Pour une raison quelconque, "man git push" ne parle que de branch.name.remote (même s'il a la moindre priorité des trois) + déclare à tort que s'il n'est pas défini, poussez les valeurs par défaut à l'origine - ce n'est pas le cas, c'est juste que lorsque vous clonez un dépôt, branch.name.remote est défini sur origin, mais si vous supprimez ce paramètre, git push échouera, même si vous avez toujours la télécommande d'origine
la source