Comment copier une twig Git locale vers un repo distant

J’ai pris les mesures suivantes jusqu’à présent:

  1. Clonage d’un repository Git distant
  2. Ramifié la twig principale à un expérimental
  3. code édité / testé / engagé dans la twig expérimentale

Maintenant, je ne suis pas prêt à fusionner expérimental en maître. Je souhaite cependant le repousser vers le repo distant car c’est le référentiel que je partage avec quelques collègues. J’aimerais qu’ils voient ce que j’ai fait dans la twig expérimentale. Je viens généralement d’accéder au repo distant via SSH.

Comment partager ma twig locale sur le repo distant, sans affecter la twig principale du repo distant?

Selon la page de manuel de Git Push :

git push origin experimental 

Trouvez un ref qui correspond à experimental dans le référentiel source (le plus probable, il trouverait refs/heads/experimental ), et mettez à jour le même ref (par exemple, refs/heads/experimental ) dans le repository d’origine.
Si experimental n’existait pas à distance, il serait créé .

C’est la même chose que:

 git push origin experimental:refs/heads/experimental 

Créez la twig experimental dans le référentiel d’origine en copiant la twig experimental actuelle.
Ce formulaire n’est nécessaire que pour créer une nouvelle twig 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 seul fonctionnera.

Ou, comme mentionné dans git tip , vous pouvez configurer un “Remote Remote par défaut”:

Vous pouvez utiliser git config pour assigner une télécommande par défaut à une twig donnée. Cette télécommande par défaut sera utilisée pour pousser cette twig, sauf indication contraire.

Cela est déjà fait pour vous lorsque vous utilisez git clone, vous permettant d’utiliser git push sans aucun argument pour pousser la twig maître locale à mettre à jour la twig principale du référentiel d’origine.

 git config branch..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 twig à jour ou avec succès, ajoutez une référence en amont (tracking), utilisée par git-pull (1) sans argument et par d’autres commandes.

De cette façon, vous n’avez pas à faire de configuration git.

 git push -u origin experimental 

Si le nom de votre twig est experimental et que le nom de la télécommande est origin , alors il est

 git push origin experimental 

git push -u ne fonctionne pas si la twig nouvellement créée ne provient pas du même repository, c’est-à-dire si vous n’avez pas créé la nouvelle twig avec git checkout -b new_branch , alors cela ne fonctionnera pas.

Par exemple, j’avais cloné deux repositorys différents localement et je devais copier repo2 / branch1 pour repo1 / et ensuite le pousser.

Ce lien m’a aidé à pousser ma twig locale (clonée depuis un autre repository) vers mon repo distant:

Voici la page github faisant autorité pour la gestion à distance de github http://github.com/guides/push-a-branch-to-github . Cela vous aidera à répondre à toutes vos questions.

tl; dr

 $ git push --set-upstream origin your_new_branch 

Plus d’informations

après avoir fait quelques commits dans votre:

 $ git checkout -b your_new_branch $ git add file $ git commit -m "changed file" 

Vous poussez votre twig en spécifiant un amont dans l’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 origin distante par défaut. donc vous commanderiez ressemblerait à:

 $ git push --set-upstream origin your_new_branch 

et toutes les poussées qui en découlent peuvent être faites simplement avec git push .