Question Comment créez-vous une branche Git distante?


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

Cependant, mon flux de travail est légèrement différent. Premier Je veux créer une succursale locale, et je ne la pousserai en amont que lorsque je serai satisfait et que je souhaite partager ma branche.

  • Comment ferais-je cela? (mes recherches google n'ont pas semblé trouver quoi que ce soit).
  • Comment dirais-je à mes collègues de l'extraire du dépôt en 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


2705
2017-10-05 09:21


origine


Réponses:


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 automatiquement créée lorsque vous la poussez sur le serveur distant. Donc, quand vous vous sentez prêt pour cela, vous pouvez simplement faire:

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

<remote-name> est typiquement origin, le nom que Git donne à la télécommande que vous avez clonée. Vos collègues tireraient alors juste cette branche, et elle est automatiquement créée localement.

Notez cependant que formellement, le format est:

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

Mais quand vous omettez un, il suppose que les deux noms de branche sont les mêmes. Cela dit, en tant que mot de mise en garde, ne faites pas l'erreur critique de spécifier seulement :<remote-branch-name> (avec les deux points), ou la branche distante sera supprimée!

Alors que git pull saura quoi faire, vous pourriez plutôt vouloir utiliser:

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

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

Pour chaque succursale à jour ou   poussé avec succès, ajouter en amont   référence (de suivi), utilisée par   argument-moins git-pull (1) et autre   commandes.


3288
2017-10-05 09:29



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, le pousser. La commande suivante pousse la branche vers l'origine du référentiel distant et la suit

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 le voulez sans passer d'arguments à git push (git push sans argument poussera le master au maître distant, your_branch local à remote your_branch, etc ...)

git push

Les coéquipiers peuvent pousser vers votre branche en faisant 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 pour pousser git

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

796
2017-07-26 01:09



Solution simple Git 2.0+:

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

$ git push -u

-u suivra la branche distante du même nom. Non 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 effectuer si aucune référence n'est explicitement donnée.

push.default = current - pousser la branche actuelle pour mettre à jour une branche avec le   même nom à la réception. Fonctionne dans les workflows centraux et non centraux.

Pour moi, c'est une bonne simplification de mon workflow Git au jour le jour. Le paramètre de configuration prend en charge le cas d'utilisation "habituel" où 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 git co remote_branch_name (par opposition à l'utilisation --set-upstream-to drapeau).

Je connais cette question et les réponses acceptées sont plutôt anciennes, mais le comportement a changé de sorte que les 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

241
2017-11-28 09:46



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

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

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

65
2017-12-27 14:12



Créez une nouvelle branche localement en fonction de la branche actuelle:

git checkout -b newbranch

Commettre les changements comme vous le feriez normalement. Ensuite, poussez-le en amont:

git push -u origin HEAD

C'est un raccourci pour pousser la branche courante vers une branche du même nom origin et suivez-le de sorte que vous n'avez pas besoin de spécifier origin HEAD A l'avenir.


48
2018-02-24 14:58



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

git push origin HEAD:refs/heads/foo

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


32
2017-11-25 15:29



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>

Ensuite, faites un commit localement

git commit -m 'your commit message'

Lorsque vous voulez pousser à repo à distance

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 à la branche pour repo à distance par

git push -u origin **bug_fixes**

Chaque fois que vous voulez mettre à jour votre branche à partir de n'importe quelle autre branche, dites maîtriser.

git pull origin master.


23
2018-05-01 06:12