web-dev-qa-db-fra.com

Comment créer une branche Git distante?

J'ai créé une branche locale que je veux "pousser" en amont. Il existe une question similaire ici sur le dépassement de capacité sur le suivi d'une branche distante nouvellement créée.

Cependant, mon flux de travail est légèrement différent. Tout d'abord Je souhaite créer une branche locale. Je ne l'enverrai que lorsque je serai satisfait et que je souhaite partager ma branche.

  • Comment je ferais ça? (mes recherches sur google n'ont pas semblé aboutir).
  • Comment pourrais-je dire à mes collègues de l'extraire du référentiel en amont?

MISE À JOUR Git 2.0 offre une réponse plus simple . J'ai écrit ci-dessous: https://stackoverflow.com/a/27185855/109305

2970

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é cela alors maintenant je peux juste pousser une nouvelle branche en amont avec

_$ git Push -u
_

_-u_ suivra les branches distantes du même nom. Maintenant, avec cette configuration, vous devinerez automatiquement la référence distante à git Push. De documentation git.config :

Push.default

Définit l'action que git Push doit entreprendre si aucun refspec n'est donné explicitement.

Push.default = current - Appuyez sur la branche actuelle pour mettre à jour une branche du même nom du côté destinataire. Fonctionne dans les flux de travail centraux et non centraux.

Pour moi, il s’agit d’une bonne simplification de mon flux de travail Git quotidien. Le paramètre de configuration prend en charge le cas d'utilisation "habituel" dans lequel vous ajoutez une branche localement et souhaitez la créer à distance. De plus, 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 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 maintenant pour simplifier votre flux de travail.

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

_$ git config --global Push.default current
_
300

Tout d'abord, vous créez votre branche 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. Alors, quand vous vous sentez prêt, vous pouvez simplement faire:

git Push <remote-name> <branch-name> 

<remote-name> est généralement Origin, le nom que git donne à la télécommande à partir de laquelle vous avez cloné. Vos collègues tireraient alors simplement cette branche et celle-ci serait automatiquement créée localement.

Notez cependant que formellement, le format est:

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

Mais lorsque vous en omettez un, cela suppose que les deux noms de branche sont identiques. Cela dit, en tant que mot de caution, ne commettez pas l'erreur critique de spécifier uniquement :<remote-branch-name> (avec les deux points), sinon la branche distante sera supprimée!

Pour qu'un git pull ultérieur sache quoi faire, vous pouvez utiliser:

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

Comme décrit ci-dessous, l'option --set-upstream définit une branche en amont:

Pour chaque branche mise à jour ou poussée avec succès, ajoutez une référence en amont (suivi), utilisée par git-pull (1) et sans autres arguments.

3578
Ikke

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

git checkout -b your_branch

Après cela, vous pouvez travailler localement dans votre branche, lorsque vous êtes prêt à partager la branche, appuyez dessus. La commande suivante Pousse la branche dans le référentiel distant Origin et en assure le suivi.

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 à tout moment sans transmettre d'arguments à git Push (git Push sans argument poussera le maître vers le maître distant, votre_branch local vers votre réseau distant, votre etc, etc.).

git Push

Les coéquipiers peuvent pousser vers votre branche en effectuant des commits, puis pousser explicitement

... work ...
git commit
... work ...
git commit
git Push Origin HEAD:refs/heads/your_branch

Ou suivre la branche pour éviter les arguments de git Push

git checkout --track -b your_branch Origin/your_branch
... work ...
git commit
... work ...
git commit
git Push
845
dseminara

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 extraire toutes les branches distantes (y compris les nouvelles) avec cette commande:

git remote update

Ensuite, pour apporter des modifications sur la branche, le flux habituel:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
73
Lucian

Créez une nouvelle branche localement basée sur la branche actuelle:

git checkout -b newbranch

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

git Push -u Origin HEAD

Il s'agit d'un raccourci pour pousser la branche actuelle vers une branche du même nom sur Origin et la suivre afin que vous n'ayez pas besoin de spécifier Origin HEAD à l'avenir.

60
Zenexer

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

git checkout -b {your_local_branch_name} 

vous voulez une branche d'une branche distante, vous pouvez essayer

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

Si vous avez terminé avec les modifications, vous pouvez ajouter le fichier.

git add -A or git add <each_file_names>

Puis faites un commit localement

git commit -m 'your commit message'

Quand vous voulez appuyer sur le dépôt distant

git Push -u Origin <your_local_branch_name>

Tous ensemble seront

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 vers la succursale vers le dépôt distant en

git Push -u Origin bug_fixes

Chaque fois que vous souhaitez mettre à jour votre branche depuis une autre branche, dites master.

git pull Origin master.

40
sreekumar

Si vous voulez simplement 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 HEAD à créer une branche foo qui n’existait pas sur la télécommande.

38
Tassadar

La solution la plus simple ... Drumm Roll ... version 2.10.1 de Git (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do 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 sur laquelle vous essayez de pousser, doit avoir le même nom.

31
sapy

Tout d'abord, vous créez la branche localement:

git checkout -b your_branch

Et puis pour créer la branche à distance:

git Push --set-upstream Origin your_branch

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

$ git --version
git version 2.3.0

À votre santé!

23
ipegasus

Créez la branche sur votre ordinateur local et basculez dans cette branche:

$ git checkout -b [name_of_your_new_branch]

Poussez la branche sur github:

$ git Push Origin [name_of_your_new_branch]

Lorsque vous voulez commettre quelque chose dans votre branche, assurez-vous d’être dans votre branche.

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

$ git branch

Ce qui montrera:

* approval_messages
  master
  master_clean

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

$ git remote add [name_of_your_remote] 

Transférez les modifications de votre commit dans votre branche:

$ git Push Origin [name_of_your_remote]

Mettez à jour votre branche lorsque la branche 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 branche est issue de develop, vous devez procéder comme suit:

$ 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 de 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
Numan Turkeri

Création d'une branche locale à partir d'une branche existante (peut être maître/développement/toute autre branche).

git checkout -b nom_branche

Pousser ceci à distance

git Push -u nom_distant nom_local_local: nom_local_distant

Ici,

  1. -u: définit la branche en amont
  2. nom_distant: git définit le nom par défaut sur "Origine" lors de la création du référentiel. Ceci peut cependant être changé en un nom arbitraire différent.
  3. local_branch_name: est le nom de la branche locale à pousser.
  4. nom_branaire_distant: est le nom de la branche distante que nous voulons créer sur le site distant.

Si nous supprimons les noms des branches locales et distantes, il aura le format

git Push -u nom_distante nom_branche

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

11
iosCurator

Je sais que cette question a reçu une bonne réponse, mais je voulais juste énumérer les étapes à suivre pour créer une nouvelle branche "myNewBranch" et Push to remote ("Origin" dans mon cas) et configurer le suivi. Considérez ceci comme 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
9
sufinawaz

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

git Push --set-upstream Origin <remote-branch-name>

et git crée pour vous la branche Origin.

8
Maurizio Brioschi

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)
6
Monis Majeed

Je voulais juste ajouter que tandis que:

git checkout -b {branchName}

Crée une nouvelle branche, il vérifie également cette branche/en fait votre branche actuelle. Si, pour une raison quelconque, tout ce que vous voulez faire est de casser une branche sans en faire votre branche actuelle, utilisez la commande suivante:

git branch {branchName}

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

6
Brian Sachetta

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 le lien m'a aidé Pousser ma branche locale (clonée à partir d'un autre dépôt) vers mon dépôt distant:

5
brokenfoot

Voici comment vous le faites dans Eclipse via Egit.

1) Allez dans la vue "Exploration du référentiel Git" et expliquez le projet git auquel vous souhaitez créer une branche. Sous Brances -> Local .. sélectionnez la branche pour laquelle vous souhaitez créer la branche (dans mon cas, j'ai sélectionné maître .. vous pouvez sélectionner une autre branche si vous le souhaitez) .. puis faites un clic droit et cliquez sur l'option Créer une branche .. et sélectionnez l'option extraire 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, puis sélectionnez Équipe -> Créer une branche.

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

3
user2225713

J'utilise ceci et c'est très pratique:

git config --global alias.mkdir '!git checkout -b $1; git status; git Push -u Origin $1; exit;'

Utilisation: git mkdir NEW_BRANCH

Vous n'avez même pas besoin du statut de git; peut-être, je veux juste m'assurer que tout va bien ...

Vous pouvez avoir à la fois les branches LOCAL et REMOTE en une seule commande.

0
Tarik