git push de branche spécifique
Même après la lecture de cette question: git push-courant de la branche, je suis toujours de la difficulté à comprendre comment je dois écrire mon git push commande. Comme mentionné dans la question du lien, il n'est pas clair à partir de la documentation.
Je voudrais utiliser mon "monde réel" de l'exemple. Voici ce que je vois quand je fais une git status
commande sur le haut de ma branche:
Sur la branche amd_qlp_tester
Votre branche est en avant de l'origine et de amd_qlp_tester' par 5 s'engage.
etc...
Donc mon nom de la branche est amd_qlp_tester
mais il a été "ramifiés" hors de la branche principale (si j'ai le mal c'est à cause de mon SVN arrière-plan). Mais ensuite, il est aussi le nom d'origine et de amd_qlp_testser'
Donc comment j'ai phrase de ma commande push?
Est-il l'un de ces:
git push origin/amd_qlp_tester?
git push origin amd_qlp_tester?
git push amd_qlp_tester?
git push origin?
git push?
Vous devez vous connecter pour publier un commentaire.
git push origin amd_qlp_tester
va travailler pour vous. Si vous tapez justegit push
, alors la distance de la branche courante est la valeur par défaut.Syntaxe de commande ressemble à ceci -
git push <remote> <branch>
. Si vous regardez votre télécommande en.git/config
fichier, vous verrez une entrée[remote "origin"]
qui spécifie l'url du dépôt. Ainsi, dans la première partie de commande, vous indiquer à Git où trouver les archives de ce projet, et alors que vous venez de spécifier une branche.origin amd_qlp_testser
et pasorigin/amd_qlp_tester
origin
). La direction générale(es) pour pousser les valeurs par défaut (dans les versions actuelles de git) pour:
si pas défini, ce qui signifiematching
, mais qui est censé changer dans le futur.git push
il essaie de pousser de toutes les branches, contrairement à ce que vous avez dit ("la distance de la branche courante est la valeur par défaut").simple
stratégie "push" ce qui signifie que de pousser une seule branche courante. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesSi votre succursale Locale et à distance est le même nom, puis il vous suffit de faire:
Lors de vos locaux et distants nom de la branche est différente, alors vous pouvez le faire:
Les réponses à la question vous reliées sont tous sur la configuration de git, de sorte que vous pouvez entrer très court
git push
commandes et de les faire faire ce que vous voulez. Ce qui est génial, si vous savez ce que vous voulez et de la façon de le préciser dans la commande Git-Ese, mais vous êtes nouveau à git! 🙂Dans votre cas, Petr Mensik réponse est la, "a") d'un droit. Voici pourquoi:
La commande
git push remote
racines autour de votre.git/config
fichier pour trouver le nommé "à distance" (par exemple,origin
). Le fichier de configuration des listes:ssh://hostname/path
)git fetch remote
Lors de la première cloné le repo—chaque fois que cela était—git définir les valeurs par défaut de certains de ces. L'URL est tout ce que vous cloné à partir et le reste, si la valeur ou la désactiver, sont tous des "raisonnable" par défaut ... ou, hmm, sont ils?
Le problème avec ces derniers est que les gens ont changé leur esprit, au fil du temps, à ce qui est "raisonnable". Alors maintenant, (selon votre version de git et que vous avez configuré les choses dans le détail), git peut imprimer un lot de mises en garde sur les valeurs par défaut de changer dans l'avenir. L'ajout du nom de la branche "pousser"—
amd_qlp_tester
—(1) l'enferme, et (2) pousse juste que l'on branche.Si vous voulez pousser plus facilement, vous pouvez le faire avec:
ou encore:
mais si elle fait ce que vous voulez, dépend de savoir si vous êtes d'accord avec "début des auteurs git" que le défaut d'origine sont raisonnables, ou "plus tard git auteurs" que le défaut d'origine ne sont pas raisonnables. Ainsi, lorsque vous voulez faire toute la configuration (éventuellement), voir la question (et réponses) vous reliées.
Comme pour le nom
origin/amd_qlp_tester
en premier lieu: c'est en fait une entité locale (un nom conservés à l'intérieur de votre repo), même si elle est appelée "distance". C'est git de deviner "oùamd_qlp_tester
est plus là". Git les mises à jour quand il peut.git push origin amd_qlp_tester
jusqu'à ce que j'ai besoin de faire des choses plus avancées 🙂Je voudrais ajouter une mise à jour de répondre maintenant, j'ai été à l'aide de git pour un certain temps, je trouve que je suis souvent en utilisant les commandes suivantes pour faire tout pousser (à l'aide de la question d'origine, comme sur l'exemple):
git push origin amd_qlp_tester
- pousser à la succursale située à l'origine appelé amd_qlp_testergit push -u origin amd_qlp_tester
- même comme le dernier, mais définit l'amont reliant la branche locale de la branche distante de sorte que la prochaine fois que vous pouvez simplement utilisergit push/pull
si ce n'est déjà lié (ne devez le faire qu'une fois).git push
- Une fois que vous avez défini en amont, vous pouvez simplement utiliser cette version plus courte.Note
-u
option est la version courte de--set-upstream
- ils sont les mêmes.