Je souhaite modifier la destination de la branche distante par défaut de Git pour pouvoir simplement
git push
Au lieu de:
git push upstream
Actuellement, ce paramètre est défini sur la télécommande d'origine et je souhaite le définir sur une autre télécommande.
J'ai essayé de retirer la télécommande d'origine (clonée depuis)
git remote rm origin
Ce qui a supprimé la télécommande d'origine. Mais ne résout pas le git push
problème. Je reçois toujours:
fatal: aucune destination push configurée. Spécifiez l'URL à partir de la
ligne de commande ou configurez un référentiel distant à l'aide de ...
J'ai aussi essayé de jouer avec:
git remote set-url --push myfork origin
et d'autres options mais aucune ne semble fonctionner (peut-être parce que j'ai supprimé la télécommande d'origine trop tôt?)
En suivant la réponse ici, j'ai essayé de changer:
git config push.default upstream (or matching)
mais ni l'un ni l'autre n'a fonctionné.
la source
git push -u <remote_name> <local_branch_name>:<corresponding_remote_branch_name>
.git push -u origin master:master
.git push
à pousser la branche distante de la branche locale actuelle? Je veux dire que cela signifie que je dois exécuter cette commande pour chaque branche. Droite? Je ne peux pas simplement faire une configuration initiale pour le repo entier? @MarcoLazzerigit push -u origin master
suffisant? Êtes-vous en train d'illustrer la syntaxe complète?Pour modifier la télécommande en amont qui est «câblée» à votre succursale, utilisez la
git branch
commande avec l'indicateur de configuration en amont.Assurez-vous que la télécommande existe en premier:
git remote -vv
Définissez la télécommande préférée pour la branche actuelle (extraite):
git branch --set-upstream-to <remote-name>
Validez la branche est configurée avec la télécommande en amont correcte:
git branch -vv
la source
git branch --set-upstream-to myfork
et j'ai eu une erreur:> erreur: option inconnue `set-upstream-to 'j'utilise git 1.7.9git remote set-url origin PATH_TO_REMOTE
)git branch -u <remotename>/<branch>
travaillé pour moi. La commande a été exécutée avec la branche d'intérêt locale extraite. Voir «Tracking Branches» sur git-scm.com/book/it/v2/Git-Branching-Remote-Branchesgit remote -v
ougit remote --verbose
. Le-vv
v supplémentaire de est redondant.Travailler avec Git 2.3.2 ...
Maintenant
status
,push
etpull
sont dirigés vers lamyfork
télécommandela source
pull
.Vous pouvez facilement changer la télécommande par défaut pour les succursales en une seule fois en utilisant cette commande
la source
Si vous l'avez fait
git push origin -u localBranchName:remoteBranchName
et sur desgit push
commandes séquentielles , vous obtenez des erreurs alors que l'origine n'existe pas, puis procédez comme suit:git remote -v
Vérifiez s'il y a une télécommande dont je me fiche. Supprimez-les avec
git remote remove 'name'
git config --edit
Recherchez les signes possibles d'une télécommande ancienne / inexistante. Recherchez
pushdefault
:Mettre à jour
oldremote
valeur et enregistrez.git push
devrait fonctionner maintenant.la source
-u
lors de l'utilisationgit push
d'une télécommande différente en raison de la mémoire musculaire. Cela fait de la télécommande donnée la valeur par défaut, la réinitialiser en utilisantgit config --edit
(ou en poussant à nouveau et en définissant une nouvelle télécommande) a résolu le problème.Juste une clarification (en utilisant la version 1.7.9.5 de git sur Ubuntu 12.04):
Git ajoutera / supprimera des télécommandes. Ce sont des instances distantes de git avec un serveur connecté.
Vous pouvez ensuite récupérer ledit référentiel git comme suit:
Il semble que cela crée une branche nommée «myremote», mais la télécommande de la branche n'est pas définie automatiquement. Pour ce faire, vous devez procéder comme suit:
Tout d'abord, vérifiez que vous avez ce problème, c.-à-d.
Vous devriez voir quelque chose comme:
Si vous voyez
branch.myremote.remote=.
, alors vous devez continuer:Vous devriez maintenant être à jour avec le référentiel distant, et vos pulls / pushs devraient être liés à la télécommande appropriée. Vous pouvez changer de télécommande de cette manière, par branche . [Note 1]
Selon une documentation The Official Git Config , vous pouvez configurer une branche push par défaut (recherchez simplement remote.pushdefault sur cette page), mais gardez à l'esprit que cela n'affectera pas les référentiels / branches qui existent déjà, donc cela fonctionnera mais seulement pour les nouveaux référentiels / succursales. Vous devez vous rappeler que
--global
cela définira les valeurs par défaut du référentiel utilisateur (~ / .gitconfig), les--system
valeurs par défaut du référentiel à l'échelle du système (/ etc / gitconfig), et aucun indicateur ne définira les options de configuration pour le référentiel actuel (./.gitconfig).Il convient également de noter que l' option de configuration push.default sert à configurer le comportement de spécification de référence , et non le comportement à distance .
[1]:
git branch --set-upstream myotherremote
fonctionnerait généralement ici, mais git se plaindra de ne pas définir une branche comme sa propre télécommande si ellegit branch --set-upstream myremote
est utilisée. Je crois cependant que c'est un comportement incorrect.la source
git config -l | grep myremote
, vous pouvez simplement utiliser:git config --get branch.myremote.remote
--get
adoptez un comportement particulier, je note qu'il existe d'autres façons de configurer les amonts mais cela fournit un moyen de trouver les informations sans se fier uniquement à l'outillage git pour être correct. Git n'est pas parfait, il vaut mieux comprendre les données, ce qu'il fait et ensuite espérer que ses invocations fonctionnent correctement.Il pourrait être utile de jeter un œil à l'
.git/config
intérieur de votre référentiel, il répertoriera toutes les télécommandes ainsi que la télécommande par défaut pour chaque branchepar exemple.
vous pouvez apporter des modifications manuelles dans ce fichier pour supprimer une télécommande indésirable, ou mettre à jour les télécommandes par défaut pour les différentes branches que vous avez
la source
Une autre technique que je viens de trouver pour résoudre ce problème (même si j'ai d'abord supprimé l'origine, ce qui semble être une erreur) consiste à manipuler directement git config:
la source
git remote set-url origin PATH_TO_REMOTE
)Très simplement, et bricoler certains des excellents commentaires ici avec mes propres recherches à ce sujet.
Tout d'abord, vérifiez la succursale locale que vous souhaitez associer à votre succursale distante:
Prochain:
où:
Vous devriez recevoir un message:
la source
Dans mon cas, j'ai corrigé ce qui suit: * run
git config --edit
* Dans le fichier de configuration git:la source
git remote set-url --push origin
devrait fonctionner, comme vous l'avez mentionné, mais vous devez fournir explicitement l'URL au lieu d'un autre nom distant, par exempleVous pouvez confirmer si cela a fonctionné en faisant a
git remote -v
. Par exemplela source