J'ai pris les mesures suivantes jusqu'à présent:
Maintenant, je ne suis pas prêt à fusionner expérimental en maître. Cependant, je souhaite le repousser vers le dépôt distant, car il s'agit du référentiel que je partage avec quelques collègues. J'aimerais qu'ils voient ce que j'ai fait dans la branche expérimentale. En règle générale, je viens d'accéder au référentiel distant via SSH.
Comment partager ma branche locale sur le référentiel distant sans affecter la branche principale du référentiel distant?
Selon la page de manuel de git Push :
git Push Origin experimental
Recherchez une référence qui correspond à experimental
dans le référentiel source (probablement refs/heads/experimental
), puis mettez à jour la même référence (par exemple, refs/heads/experimental
) dans le référentiel Origin.
Si experimental
n'existait pas à distance, il serait créé.
C'est pareil que:
git Push Origin experimental:refs/heads/experimental
Créez la branche experimental
dans le référentiel d'origine en copiant la branche experimental
actuelle.
Ce formulaire est nécessaire uniquement pour créer une nouvelle branche ou une nouvelle balise dans le référentiel distant lorsque le nom local et le nom distant sont différents; sinon, le nom de référence fonctionnera seul.
Ou, comme mentionné dans git tip , vous pouvez configurer une "Télécommande par défaut de la branche":
Vous pouvez utiliser git config pour attribuer une télécommande par défaut à une branche donnée. Cette télécommande par défaut sera utilisée pour pousser cette branche sauf indication contraire.
Ceci est déjà fait pour vous lorsque vous utilisez git clone, ce qui vous permet d’utiliser git Push sans aucun argument pour pousser la branche maître locale pour mettre à jour la branche principale du référentiel Origin.
git config branch.<name>.remote <remote>
peut être utilisé pour spécifier ceci manuellement.
Jan suggère (pour git> = 1.7.0 ) l'option Push -u
(ou Push --set-upstream
):
Pour chaque branche mise à jour ou poussée avec succès, ajoutez une référence en amont (suivi), utilisée par git-pull (sans argument) et d'autres commandes.
De cette façon, vous n'avez pas à faire de config git.
git Push -u Origin experimental
Si le nom de votre branche est experimental
et que le nom de la télécommande est Origin
, alors
git Push Origin experimental
git Push -u <remote-name> <branch-name>
ne fonctionne pas si la branche nouvellement créée ne provient pas du même référentiel, c'est-à-dire si vous n'avez pas créé la nouvelle branche à l'aide de git checkout -b new_branch
, cela ne fonctionnera pas.
Par exemple, j'avais cloné localement deux référentiels différents et je devais copier repo2/branch1 sur repo1 /, puis Push it aussi.
Ce lien m'a aidé à pousser ma branche locale (clonée à partir d'un autre référentiel) vers mon référentiel distant:
Voici la page github faisant autorité pour la gestion à distance github http://github.com/guides/Push-a-branch-to-github . Cela vous aidera à répondre à toutes vos questions.
$ git Push --set-upstream Origin your_new_branch
après avoir effectué quelques commits dans votre:
$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"
vous Poussez votre branche spécifiant un amont dans un des référentiels de télécommandes comme suit:
$ git Push --set-upstream REMOTE YOUR_BRANCH
télécommandes peuvent être vus par
$ git remote -v
généralement, vous aurez une seule variable par défaut Origin
. de sorte que votre commande ressemblerait à ceci:
$ git Push --set-upstream Origin your_new_branch
et toutes les poussées conséquentes peuvent être faites simplement avec git Push
.