Comment créer une branche git distante?

j'ai créé une branche locale que je veux "pousser" en amont. Il y a une question similaire ici sur le débordement de la pile sur la façon de suivre une branche distante nouvellement créée.

cependant, mon flux de travail est légèrement différent. Première je veux créer une branche locale, et je ne le pousser en amont lorsque je suis satisfait et que vous voulez partager ma branche.

  • Comment faire? (mes recherches sur google n'ont pas semblé donner quoi.)
  • Comment dire à mes collègues de le retirer du dépôt amont?

mise à jour avec Git 2.0 Il y a une réponse plus simple j'ai écrit ci-dessous: https://stackoverflow.com/a/27185855/109305

2752
demandé sur Community 2009-10-05 13:21:04

17 réponses

d'abord, vous créez votre succursale localement:

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

la branche distante est créée automatiquement lorsque vous la poussez sur le serveur distant. Donc quand vous vous sentez prêt pour cela, vous pouvez juste faire:

git push <remote-name> <branch-name> 

<remote-name> est typiquement origin , le nom que git donne à la télécommande d'où vous avez cloné. Vos collègues pourraient alors simplement tirer cette branche, et elle est automatiquement créée localement.

Note toutefois que formellement, le format est:

git push <remote-name> <local-branch-name>:<remote-branch-name>

mais si vous en omettez une, Cela suppose que les noms des deux branches sont les mêmes. Ceci étant dit, comme un mot de attention , ne faites pas l'erreur critique de spécifier seulement :<remote-branch-name> (avec le deux-points), ou la branche distante sera supprimée!

pour qu'un git pull suivant sache quoi faire, vous pourriez plutôt vouloir utiliser:

git push --set-upstream <remote-name> <local-branch-name> 

As décrite ci-dessous, l'option --set-upstream établit une branche amont:

pour chaque succursale qui est à jour ou réussi, ajouter en amont (suivi) référence, utilisé par l'argument de moins git pull(1) et d'autres commande.

3355
répondu Ikke 2017-08-13 12:55:06

d'abord, vous devez créer votre branche localement

git checkout -b your_branch

après cela, vous pouvez travailler localement dans votre branche, quand vous êtes prêt à partager la branche, poussez-la. La commande suivante pousse la branche vers l'origine du dépôt distant et la trace

git push -u origin your_branch

les coéquipiers peuvent atteindre votre branche, en faisant:

git fetch
git checkout origin/your_branch

vous pouvez continuer à travailler dans la branche et pousser quand vous voulez sans passer des arguments to git push (argumentless git push poussera le maître vers le maître distant, votre_branch local vers votre_branch distant,etc...)

git push

les coéquipiers peuvent pousser à votre branche en faisant commits puis push explicitement

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

ou suivi de la branche pour éviter les arguments à git push

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
807
répondu dseminara 2011-07-26 01:09:09

simple Git 2.0+ solution:

Que de Git 2.0 le comportement est devenu plus simple :

vous pouvez configurer git avec push.default = current pour rendre la vie plus facile:

j'ai ajouté ceci donc maintenant je peux juste pousser une nouvelle branche en amont avec

$ git push -u

-u traquera la branche distante du même nom. Non, avec cette configuration, vous allez deviner automatiquement la référence à distance à git push. De git.documentation de configuration :

push.par défaut

définit l'action git push devrait prendre si aucun refspec n'est explicitement donné.

push.default = current - poussez la branche courante pour mettre à jour une branche avec même nom sur la fin de réception. Fonctionne dans les flux de travail centraux et non centraux.

pour moi, c'est une bonne simplification de mon workflow quotidien Git. Le réglage de la configuration prend en compte le cas d'utilisation "habituel" où vous ajoutez une branche localement et que vous voulez la créer à distance. En outre, je peux tout aussi facilement créer des branches locales à partir de télécommandes en faisant simplement git co remote_branch_name (au lieu d'utiliser le drapeau --set-upstream-to ).

je sais que cette question et les réponses acceptées sont assez anciennes, mais le comportement a changé de sorte que maintenant, les options de configuration existent pour simplifier votre flux de travail.

pour ajouter à votre configuration git globale, Lancez ceci sur la ligne de commande:

$ git config --global push.default current
250
répondu Jesper Rønn-Jensen 2017-09-26 06:50:27

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

git push <remote-name> <local-branch-name>:<remote-branch-name>

est suffisant pour pousser une branche locale.

vos collègues, peuvent tirer toutes les branches distantes (y compris les nouvelles) avec cette commande:

git remote update

puis, pour faire des changements sur la branche, le flux habituel:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
67
répondu Lucian 2011-12-27 16:18:54

créer une nouvelle branche locale basée sur la branche actuelle:

git checkout -b newbranch

valider toutes les modifications que vous le feriez normalement. Puis, le pousser en amont:

git push -u origin HEAD

c'est un raccourci pour pousser la branche courante à une branche du même nom sur origin et la suivre pour que vous n'ayez pas besoin de spécifier origin HEAD dans le futur.

54
répondu Zenexer 2014-02-24 14:58:49

si vous voulez créer une branche distante sans avoir la branche locale, vous pouvez le faire comme ceci:

git push origin HEAD:refs/heads/foo

il pousse tout ce qui est votre tête à la branche foo qui n'existait pas sur la télécommande.

35
répondu Tassadar 2015-11-25 15:29:39

si vous voulez créer une branche à partir de la branche actuelle

git checkout -b {your_local_branch_name} 

vous voulez une branche de la branche distante, vous pouvez essayer

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

si vous avez fait des modifications, vous pouvez ajouter le fichier.

git add -A or git add <each_file_names>

puis faire un commit Local

git commit -m 'your commit message'

quand vous voulez appuyer sur repo à distance

git push -u origin <your_local_branch_name>

tous ensemble sera

git checkout -b bug_fixes 

ou Si vous voulez créer une branche à partir d'une branche distante, dites développement

git checkout -b bug_fixes origine/ développement

Vous pouvez pousser la direction à distance repo par

git push -u origin **bug_fixes**

N'importe quand vous voulez mettre à jour votre branche de n'importe quelle autre branche dire master .

git pull origin master .

24
répondu sreekumar 2017-02-05 08:46:29

vous créez D'abord la branche localement:

git checkout -b your_branch

et ensuite de créer la branche à distance:

git push --set-upstream origin your_branch

Note: cela fonctionne sur les versions latests de git:

$ git --version
git version 2.3.0

santé!

22
répondu ipegasus 2015-04-21 23:43:46

Solution La Plus Facile... Drumm Roll . Git version 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

N.B. - la branche que vous venez de créer dans votre environnement local , et la branche distante non existante où vous essayez de pousser , doit avoir le même nom .

17
répondu sapy 2018-07-20 07:40:07

créer la branche sur votre machine locale et basculer dans cette branche:

$ git checkout -b [name_of_your_new_branch]

Pousser la branche sur github :

$ git push origin [name_of_your_new_branch]

Lorsque vous voulez envoyer quelque chose dans votre branche, être sûr d'être dans votre branche.

vous pouvez voir toutes les branches créées en utilisant:

$ git branch

qui montrera:

* approval_messages
  master
  master_clean

Ajouter un nouvelle télécommande pour votre branche:

$ git remote add [name_of_your_remote] 

Push changements de votre s'engager dans votre branche :

$ git push origin [name_of_your_remote]

mettre à jour votre branche lorsque la branche originale du dépôt officiel a été mise à jour :

$ git fetch [name_of_your_remote]

alors vous devez appliquer pour fusionner les changements, si votre branche est dérivée de développer vous devez faire:

$ git merge [name_of_your_remote]/develop

supprimer une branche de votre système de fichiers local:

$ git branch -d [name_of_your_new_branch]

pour forcer la suppression de la branche locale sur votre système de fichiers:

$ git branch -D [name_of_your_new_branch]

supprimer la branche sur github:

$ git push origin :[name_of_your_new_branch]

Ici Toutes Les Informations

autre projet existant

16
répondu Numan Turkeri 2016-05-27 11:39:29

maintenant avec git, vous pouvez juste taper, quand vous êtes dans la branche correcte

git push --set-upstream origin <remote-branch-name >

et git créent pour vous la branche origin.

8
répondu Maurizio Brioschi 2014-10-27 17:05:42

la Création d'une antenne locale à partir d'une branche (peut être maître/ développer/ tout-autre-branche).

git checkout-b branch_name

Pousser à distance

git push-u remote_name local_branch_name: remote_branch_name

ici,

  1. - u: définit la branche amont
  2. remote_name: git définit le nom par défaut comme "origine" lorsqu'il crée le dépôt. Ceci peut cependant être changé en un nom arbitraire différent.
  3. local_branch_name: est le nom de la branche locale à pousser.
  4. remote_branch_name : est le nom de la branche distante que nous voulons créer à distance.

si nous supprimons les noms des branches locales et éloignées, il aura le format

git push-u remote_name branch_name

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

8
répondu iosCurator 2017-02-15 06:57:20

je sais que cette question est bien répondue, mais je voulais juste énumérer les étapes que je prends pour créer une nouvelle branche" myNewBranch"et pousser à distance ("origine" dans mon cas) et mettre en place le suivi. Considérer que c'est "TL;DR" version :)

# 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
7
répondu sufinawaz 2014-10-23 14:09:17

je voulais juste ajouter que tandis que:

git checkout -b {branchName}

crée une nouvelle branche, il vérifie également que la branche / en fait votre branche actuelle. Si, pour une raison quelconque, tout ce que vous voulez faire est d'enlever une branche sans en faire votre branche actuelle, alors vous utiliserez la commande suivante:

git branch {branchName}

dans la première commande, "checkout" fait de ladite branche votre branche actuelle, et le "-b" signifie: cette branche n'existe pas encore, alors faites-le pour moi.

6
répondu Brian Sachetta 2015-03-30 14:02:24

Comment le faire par le biais de l'Arborescence 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)
4
répondu Monis Majeed 2015-07-21 11:27:20

Voici comment vous le faites dans eclipse par Egit.

1) Allez dans la vue "Git Repository Explorer" et exposez le projet git auquel vous voulez créer une branche. Sous Brances - > Local .. sélectionnez la branche pour laquelle vous souhaitez créer la branche ( Dans mon cas, j'ai choisi de maître .. vous pouvez sélectionner une autre direction si vous le souhaitez) .. puis cliquez avec le bouton droit de la souris et cliquez sur L'option Créer une branche .. et sélectionnez l'option checkout ce projet, puis cliquez sur le bouton Terminer.

2) Maintenant, à partir de l'explorateur de projets, sélectionnez le projet .. clic droit puis Team - > Push Branch.

une nouvelle branche distante sera créée. Vous pouvez donner le nom de la branche à vos collègues afin qu'ils puissent tirer.

3
répondu user2225713 2014-01-31 23:46:50

git push -u <remote-name> <branch-name> ne fonctionne pas si la branche nouvellement créée n'est pas générée à partir du même repo, c.-à-d. Si vous n'avez pas créé la nouvelle branche en utilisant git checkout -b new_branch , alors cela ne fonctionnera pas.

Par exemple, j'avais cloné deux dépôts différents localement et j'ai dû copier repo2/branch1 à repo1/ et puis la pousser trop.

ce lien m'a aidé à pousser ma branche locale (clonée à partir d'une autre déclaration) vers ma déclaration à distance:

3
répondu brokenfoot 2014-02-24 21:38:11