Même après avoir lu cette question: git-push-current-branch , j'ai toujours du mal à comprendre comment écrire ma commande git push. Comme mentionné dans le lien de la question, ce n'est pas clair dans la documentation.
Je voudrais utiliser mon exemple du «monde réel». Voici ce que je vois lorsque je fais une git status
commande au niveau supérieur de ma branche:
Sur la branche amd_qlp_tester
Votre branche est en avance sur 'origin / amd_qlp_tester' de 5 commits.
etc...
Donc, mon nom de branche est, amd_qlp_tester
mais il a été "ramifié" de la branche principale (si j'ai les termes faux, c'est à cause de mon arrière-plan SVN). Mais alors il y a aussi le nom `origin / amd_qlp_testser '
Alors, comment exprimer ma commande push?
Est-ce l'un des éléments suivants:
git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
la source
origin amd_qlp_testser
et nonorigin/amd_qlp_tester
origin
). La ou les branche (s) pour pousser les valeurs par défaut (dans les versions actuelles de git) à:
if unset, ce qui signifiematching
, mais c'est censé changer dans le futur.git push
ça essaie de pousser toutes les branches suivies, contrairement à ce que tu as dit ("la télécommande de la branche courante est la valeur par défaut").simple
stratégie push, ce qui signifie qu'elle ne poussera que la branche actuelle. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Si votre succursale locale et votre succursale distante portent le même nom, vous pouvez simplement le faire:
Lorsque le nom de votre succursale locale et distante est différent, vous pouvez simplement le faire:
la source
Les réponses en question auxquelles vous vous êtes lié concernent toutes la configuration de git afin que vous puissiez entrer des
git push
commandes très courtes et leur demander de faire ce que vous voulez. Ce qui est génial, si vous savez ce que vous voulez et comment épeler cela dans Git-Ese, mais vous êtes nouveau dans git! :-)Dans votre cas, la réponse de Petr Mensik est la (enfin, "a") bonne. Voici pourquoi:
La commande prend racine dans votre fichier pour trouver le nom "distant" (par exemple, ). Le fichier de configuration répertorie:
git push remote
.git/config
origin
ssh://hostname/path
git fetch remote
Lorsque vous avez cloné le dépôt pour la première fois - quand c'était le cas - git a défini des valeurs par défaut pour certains d'entre eux. L'URL est celle à partir de laquelle vous avez cloné et le reste, s'il est défini ou non, sont tous des paramètres par défaut "raisonnables" ... ou, hmm, sont- ils?
Le problème avec ces derniers est que les gens ont changé d'avis, au fil du temps, quant à ce qui est «raisonnable». Alors maintenant (en fonction de votre version de git et du fait que vous ayez configuré les choses en détail), git peut afficher de nombreux avertissements sur les changements par défaut dans le futur. Ajouter le nom de la "branche à pousser" -
amd_qlp_tester
- (1) la ferme, et (2) pousse juste cette branche.Si vous voulez pousser plus facilement, vous pouvez le faire avec:
ou même:
mais si cela fait ce que vous voulez, cela dépend si vous êtes d'accord avec les «premiers auteurs git» que les valeurs par défaut d'origine sont raisonnables, ou les «auteurs git ultérieurs» que les valeurs par défaut d'origine ne sont pas raisonnables. Ainsi, lorsque vous voulez faire toutes les tâches de configuration (éventuellement), voyez la question (et les réponses) auxquelles vous vous êtes lié.
En ce qui concerne le nom
origin/amd_qlp_tester
en premier lieu: c'est en fait une entité locale (un nom conservé dans votre dépôt), même si cela s'appelle une "branche distante". C'est la meilleure estimation de git à "oùamd_qlp_tester
est là-bas". Git le met à jour quand il le peut .la source
git push origin amd_qlp_tester
Je voudrais ajouter une réponse mise à jour - maintenant j'utilise git depuis un certain temps, je trouve que j'utilise souvent les commandes suivantes pour faire n'importe quel push (en utilisant la question d'origine comme exemple):
git push origin amd_qlp_tester
- pousser vers la branche située dans la télécommande appeléeorigin
sur la branche distante appeléeamd_qlp_tester
.git push -u origin amd_qlp_tester
- identique au dernier, mais définit la liaison en amont de la branche locale à la branche distante de sorte que la prochaine fois, vous puissiez simplement l'utilisergit push/pull
si elle n'est pas déjà liée (vous ne devez le faire qu'une seule fois).git push
- Une fois que vous avez configuré l'amont, vous pouvez simplement utiliser cette version plus courte.Remarque l'
-u
option est la version courte de--set-upstream
- ce sont les mêmes.la source