Comment créez-vous une twig Git distante?

J’ai créé une twig locale que je veux «pousser» en amont. Il y a une question similaire ici sur Stack Overflow sur la façon de suivre une nouvelle twig distante.

Cependant, mon stream de travail est légèrement différent. Je veux d’abord créer une succursale locale, et je ne la repousserai que lorsque je serai satisfait et que je veux partager ma twig.

  • Comment pourrais-je faire ça? (mes recherches google ne semblaient pas avoir quelque chose).
  • Comment pourrais-je dire à mes collègues de le retirer du référentiel en amont?

MISE À JOUR Avec Git 2.0, il existe une réponse plus simple que j’ai écrite ci-dessous: https://stackoverflow.com/a/27185855/109305

Tout d’abord, vous créez votre succursale localement:

 git checkout -b  # Create a new branch and check it out 

La twig distante est automatiquement créée lorsque vous la poussez vers le serveur distant. Donc, lorsque vous vous sentez prêt, vous pouvez simplement faire:

 git push   

est généralement l’ origin , le nom que git donne à la télécommande à partir de laquelle vous avez cloné. Vos collègues pourraient alors retirer cette twig et celle-ci est automatiquement créée localement.

Notez toutefois que formellement, le format est le suivant:

 git push  : 

Mais quand vous en omettez un, cela suppose que les deux noms de twig sont les mêmes. Cela dit, en guise de précaution , ne faites pas l’erreur critique de ne spécifier que : (avec les deux-points), ou la twig distante sera supprimée!

Pour qu’une git pull ultérieure sache quoi faire, vous pouvez utiliser à la place:

 git push --set-upstream   

Comme décrit ci-dessous, l’option --set-upstream configure une twig en amont:

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.

Tout d’abord, vous devez créer votre succursale localement

 git checkout -b your_branch 

Après cela, vous pouvez travailler localement dans votre succursale, lorsque vous êtes prêt à partager la twig, appuyez dessus. La commande suivante pousse la twig vers l’origine du référentiel distant et la suit

 git push -u origin your_branch 

Les coéquipiers peuvent atteindre votre twig en faisant:

 git fetch git checkout origin/your_branch 

Vous pouvez continuer à travailler dans la twig et pousser quand vous le voulez sans passer d’argument à git push (git push sans argument poussera le maître au maître distant, votre local_branch à votre your_branch, etc …)

 git push 

Les coéquipiers peuvent aller dans votre twig en faisant des commits, puis pousser explicitement

 ... work ... git commit ... work ... git commit git push origin HEAD:refs/heads/your_branch 

Ou suivre la twig pour éviter les arguments pour pousser

 git checkout --track -b your_branch origin/your_branch ... work ... git commit ... work ... git commit git push 

Solution simple Git 2.0+:

A partir de Git 2.0, le comportement est devenu plus simple :

Vous pouvez configurer git avec push.default = current pour vous simplifier la vie:

J’ai ajouté ceci maintenant je peux juste pousser une nouvelle twig en amont avec

 $ git push -u 

-u suivra la twig distante du même nom. Non avec cette configuration, vous devinerez automatiquement la référence à distance à git push. De la documentation git.config :

push.default

Définit l’action que git push doit prendre si aucun refspec n’est explicitement donné.

push.default = current – pousse la twig actuelle à mettre à jour une twig portant le même nom à la réception. Fonctionne dans les workflows centraux et non centraux.

Pour moi, c’est une bonne simplification de mon stream de travail Git au quotidien. Le paramètre de configuration prend en charge le cas d’utilisation «habituel» où vous ajoutez une twig localement et souhaitez le créer à distance. Aussi, je peux tout aussi facilement créer des twigs locales à partir de télécommandes en faisant simplement git co remote_branch_name (par opposition à utiliser --set-upstream-to flag).

Je connais cette question et les réponses acceptées sont plutôt anciennes, mais le comportement a changé de sorte que des options de configuration existent désormais pour simplifier votre stream de travail.

Pour append à votre configuration globale Git, exécutez ceci sur la ligne de commande:

 $ git config --global push.default current 

Comme indiqué dans les réponses précédentes,

 git push  : 

est suffisant pour pousser une succursale locale.

Vos collègues peuvent extraire toutes les twigs distantes (y compris les nouvelles) avec cette commande:

 git remote update 

Ensuite, pour apporter des modifications à la twig, le stream habituel:

 git checkout -b  / 

Créez une nouvelle twig localement en fonction de la twig en cours:

 git checkout -b newbranch 

Engagez les modifications comme vous le feriez normalement. Ensuite, poussez-le en amont:

 git push -u origin HEAD 

Ceci est un raccourci pour pousser la twig actuelle vers une twig du même nom à l’ origin et la suivre pour que vous n’ayez pas besoin de spécifier l’ origin HEAD dans le futur.

Si vous voulez simplement créer une twig distante sans avoir la twig locale, vous pouvez le faire comme ceci:

 git push origin HEAD:refs/heads/foo 

Il pousse tout ce que votre HEAD à twig foo qui n’existait pas sur la télécommande.

Si vous souhaitez créer une twig à partir de la twig actuelle

 git checkout -b {your_local_branch_name} 

vous voulez une twig d’une twig distante, vous pouvez essayer

 git checkout -b {your_local_branch_name} origin/ 

Si vous en avez fini avec les modifications, vous pouvez append le fichier.

 git add -A or git add  

Ensuite, faites un engagement localement

 git commit -m 'your commit message' 

Lorsque vous voulez pousser à repo à distance

 git push -u origin  

Tous ensemble seront

 git checkout -b bug_fixes 

ou Si vous souhaitez créer une twig depuis une twig distante, par exemple développement

git checkout -b bug_fixes origine / développement

Vous pouvez pousser à la twig à repo à distance en

 git push -u origin **bug_fixes** 

Chaque fois que vous souhaitez mettre à jour votre twig à partir de toute autre twig, dites master .

git pull origin master .

Vous créez d’abord la twig localement:

 git checkout -b your_branch 

Et puis pour créer la twig à distance:

 git push --set-upstream origin your_branch 

Note: Cela fonctionne sur les dernières versions de git:

 $ git --version git version 2.3.0 

À votre santé!

Créez la twig sur votre machine locale et basculez dans cette twig:

 $ git checkout -b [name_of_your_new_branch] 

Poussez la twig sur github:

 $ git push origin [name_of_your_new_branch] 

Lorsque vous souhaitez commettre quelque chose dans votre twig, assurez-vous d’être dans votre agence.

Vous pouvez voir toutes les twigs créées en utilisant:

 $ git branch 

Qui montrera:

 * approval_messages master master_clean 

Ajoutez une nouvelle télécommande pour votre twig:

 $ git remote add [name_of_your_remote] 

Poussez les modifications depuis votre engagement dans votre twig:

 $ git push origin [name_of_your_remote] 

Mettez à jour votre twig lorsque la twig d’origine du référentiel officiel a été mise à jour:

 $ git fetch [name_of_your_remote] 

Ensuite, vous devez appliquer pour fusionner les modifications, si votre twig est dérivée du développement, vous devez faire:

 $ git merge [name_of_your_remote]/develop 

Supprimer une twig sur votre système de fichiers local:

 $ git branch -d [name_of_your_new_branch] 

Pour forcer la suppression de la twig locale sur votre système de fichiers:

 $ git branch -D [name_of_your_new_branch] 

Supprimer la twig sur github:

 $ git push origin :[name_of_your_new_branch] 

Ici toutes les informations

Autre projet existant

La solution la plus facile … Drumm Roll. version git 2.10.1 (Apple Git-78)

 1) git checkout -b localBranchNameThatDoesNotExistInRemote 2) Do your changes , and go a git commit 3) git push origin localBranchNameThatDoesNotExistInRemote --force 

NB – La twig que vous venez de créer dans votre environnement local et la twig distante non existante sur laquelle vous essayez de pousser doivent porter le même nom .

Maintenant, avec git, vous pouvez simplement taper, quand vous êtes dans la bonne twig

git push --set-upstream origin >

et git crée pour vous la twig origine.

Créer une twig locale à partir d’une twig existante (peut être master / develop / any-other-branch).

git checkout -b nom_twig

Poussez ceci à distance

git push -u nom_local nom_twigl local: nom_twigment distant

Ici,

  1. -u: définit la twig en amont
  2. remote_name: git définit le nom par défaut comme étant “origine” lorsqu’il crée le référentiel. Cela peut cependant être changé pour un nom arbitraire différent.
  3. local_branch_name: est le nom de la twig locale à pousser.
  4. remote_branch_name: est le nom de la twig distante que nous voulons créer sur la télécommande.

Si nous supprimons les noms de twig locale et distante, elle aura le format

git push -u nom_travail branch_name

Cela poussera la twig locale à distance et avec le même nom que la twig locale branch_name. La twig locale suivra également la twig distante.

Je sais que cette question a bien été répondue, mais je voulais juste énumérer les étapes à suivre pour créer une nouvelle twig “myNewBranch” et pousser à distance (“origine” dans mon cas) et configurer le suivi. Considérez ceci la version “TL; DR” 🙂

 # create new branch and checkout that branch git checkout -b myNewBranch # now push branch to remote git push origin myNewBranch # set up the new branch to track remote branch from origin git branch --set-upstream-to=origin/myNewBranch myNewBranch 

Je voulais juste append cela alors que:

 git checkout -b {branchName} 

Crée une nouvelle twig, elle extrait également cette twig / en fait votre twig actuelle. Si, pour une raison quelconque, vous ne voulez que détacher une twig sans en faire votre twig actuelle, vous devez utiliser la commande suivante:

 git branch {branchName} 

Dans la première commande, “checkout” fait de cette twig votre twig actuelle, et “-b” signifie: cette twig n’existe pas encore, alors faites-le pour moi.

Comment faire à travers l’arbre source

  1: Open SourceTree, click on Repository -> Checkout 2 :Click on Create New Branch 3: Select branch where from you want to get code for new branch 4: Give your branch name 5: Push the branch (by click on Push button) 

Voici comment vous le faites en éclipse grâce à Egit.

1) Allez dans la vue “Git Repository Exploring” et expliquez le projet git auquel vous voulez créer une twig. Sous Brances -> Local .. sélectionnez la twig pour laquelle vous souhaitez créer la twig (dans mon cas, j’ai sélectionné master .. vous pouvez sélectionner une autre twig si vous le souhaitez) .. alors cliquez avec le bouton droit et cliquez sur l’option Créer une twig. et sélectionnez l’option Commander ce projet, puis cliquez sur le bouton Terminer.

2) Maintenant, dans l’explorateur de projet, sélectionnez le projet. Cliquez avec le bouton droit de la souris sur Team -> Push Branch.

Une nouvelle twig distante sera créée. Vous pouvez donner le nom de la twig à vos collègues pour qu’ils puissent la retirer.

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: