J'ai créé une branche locale que je souhaite «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. Tout d' abord , je veux créer une branche locale, et je ne le pousser l' amont quand je suis satisfait et je veux partager ma branche.
- Comment ferais-je ça? (mes recherches sur google ne semblaient aboutir à rien).
- Comment pourrais-je dire à mes collègues de le retirer du référentiel en amont?
MISE À JOUR Avec Git 2.0, il y a une réponse plus simple que j'ai écrite ci-dessous: https://stackoverflow.com/a/27185855/109305
git
branch
git-branch
Jesper Rønn-Jensen
la source
la source
get fetch --all
récupère les nouvelles branches du côté distant (mais seulement aget fetch --prune
supprime localement les références aux branches distantes supprimées). Je pense que cela devrait être réglé automatiquement par eux ou que vous devez leur parler verbalement.Réponses:
Tout d'abord, vous créez votre succursale localement:
La branche distante est automatiquement créée lorsque vous la poussez sur le serveur distant. Ainsi, lorsque vous vous sentez prêt, vous pouvez simplement faire:
Où
<remote-name>
est généralementorigin
le nom que git donne à la télécommande à partir de laquelle vous avez cloné. Vos collègues tireraient alors simplement cette branche, et elle est automatiquement créée localement.Notez cependant que formellement, le format est:
Mais lorsque vous en omettez un, cela suppose que les deux noms de branche sont les mêmes. Cela dit, par prudence , ne faites pas l'erreur critique de ne spécifier que
:<remote-branch-name>
(avec les deux-points), sinon la branche distante sera supprimée!Pour qu'un utilisateur ultérieur
git pull
sache quoi faire, vous pouvez plutôt utiliser:Comme décrit ci-dessous, l'
--set-upstream
option met en place une branche en amont:la source
git push <remote>
ne pousserait pas la branche si elle n'est pas présente<remote>
.git push -u <remote-name> <branch-name>
place, afin qu'un utilisateur ultérieurgit pull
sache quoi faire.origin
, ce qui signifie "le serveur dont j'ai obtenu le reste de ce dépôt": ainsigit push origin <branch-name>
.-u
option, vous pouvez simplement tapergit push -u
ensuite dans la branche, puisgit pull
cela fonctionnera.git push -u origin <local-branch-name>
c'est ce qui a fonctionné pour moi.Tout d'abord, vous devez créer votre succursale localement
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 vers l'origine du référentiel distant et la suit
Les coéquipiers peuvent rejoindre votre branche en faisant:
Vous pouvez continuer à travailler dans la branche et à pousser quand vous le souhaitez sans passer d'arguments à git push (git push sans argument poussera le maître vers le maître distant, votre local de votre_branche vers votre_branch distant, etc ...)
Les coéquipiers peuvent pousser vers votre branche en faisant des commits, puis pousser explicitement
Ou suivre la branche pour éviter les arguments pour git push
la source
Solution Git 2.0+ simple:
Depuis Git 2.0, le comportement est devenu plus simple :
Vous pouvez configurer git avec
push.default = current
pour vous faciliter la vie:J'ai ajouté cela maintenant je peux simplement pousser une nouvelle branche en amont avec
-u
suivra la branche distante du même nom. Maintenant, avec cette configuration, vous devinerez automatiquement la référence à distance à git push. Depuis la documentation de git.config :Pour moi, c'est une bonne simplification de mon flux de travail Git au 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. 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
(par opposition à l'utilisation de--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 maintenant pour simplifier votre flux de travail.
Pour ajouter à votre configuration globale de Git, exécutez ceci sur la ligne de commande:
la source
git push -u origin HEAD
comme répondu ici un peu plus verbeux (vous écrivez ce que vous faites) sans être trop à taper. De plus, ungit push -u
sans arguments supplémentaires n'a pas fonctionné pour moi si la branche a été créée avec-t
git config --global push.default upstream && git checkout -b foo && <change a file> && git push -u
ne fonctionne pas (à partir de git 2.19.1); push nécessite les arguments remote et branch.git co remote_branch_name
?Comme indiqué dans les réponses précédentes,
est suffisant pour pousser une branche locale.
Vos collègues peuvent extraire toutes les branches distantes (y compris les nouvelles) avec cette commande:
Ensuite, pour effectuer des modifications sur la branche, le flux habituel:
la source
Créez une nouvelle branche localement en fonction de la branche actuelle:
Validez les modifications comme vous le feriez normalement. Ensuite, poussez-le en amont:
Il s'agit d'un raccourci pour pousser la branche actuelle vers une branche du même nom
origin
et la suivre afin que vous n'ayez pas besoin de la spécifierorigin HEAD
à l'avenir.la source
git push -u origin HEAD
. Je pense que c'est la manière la plus claire.git status
premier.git remote show origin
une troisième étape juste pour visualiser la nouvelle relation suivi / suivi.Si vous souhaitez créer une branche à partir de la branche actuelle
vous voulez une branche d'une branche distante, vous pouvez essayer
Si vous avez terminé les modifications, vous pouvez ajouter le fichier.
Faites ensuite un commit localement
Lorsque vous souhaitez effectuer un repo à distance
Tous ensemble seront
ou Si vous souhaitez créer une branche à partir d'une branche distante, dites développement
git checkout -b bug_fixes origine / développement
Vous pouvez pousser à la succursale pour le repo à distance en
Chaque fois que vous souhaitez mettre à jour votre branche à partir d'une autre branche, dites master .
git pull origin master
.la source
Si vous voulez simplement créer une branche distante sans avoir la branche locale, vous pouvez le faire comme ceci:
Il pousse tout ce qui est votre HEAD à branchement foo qui n'existait pas sur la télécommande.
la source
Solution la plus simple ... Drumm Roll ... git version 2.10.1 (Apple Git-78)
NB - La branche que vous venez de créer dans votre environnement local, et la branche distante non existante où vous essayez de pousser, doivent avoir le même nom .
la source
git push -u
c'est beaucoup plus facile. Nécessite que vous ayez une ligne de configuration globale, voir stackoverflow.com/a/27185855/109305 . J'utilisegit push -u
constamment, il couvre 99% de mes cas d'utilisation en travaillant.[Réponse rapide]
Vous pouvez le faire en 2 étapes:
1. Utilisez le
checkout
pour créer la branche locale:2. Utilisez la
push
commande pour créer automatiquement la branche et envoyer le code au référentiel distant:la source
Vous créez d'abord la branche localement:
Et puis pour créer la branche à distance:
Remarque: Cela fonctionne sur les dernières versions de git:
À votre santé!
la source
git push
lorsque votre branche locale n'est pas suivie par une télécommande.Poussez la branche sur github:
Lorsque vous souhaitez engager quelque chose dans votre branche, assurez-vous d'être dans votre branche.
Vous pouvez voir toutes les branches créées en utilisant:
Ce qui montrera:
Ajoutez une nouvelle télécommande pour votre branche:
Poussez les modifications de votre commit dans votre branche:
Mettez à jour votre branche lorsque la branche d'origine du référentiel officiel a été mise à jour:
Ensuite, vous devez appliquer pour fusionner les modifications, si votre branche est dérivée de develop, vous devez faire:
Supprimez une branche sur votre système de fichiers local:
Pour forcer la suppression de la branche locale sur votre système de fichiers:
Supprimez la branche sur github:
Ici toutes les informations
Autre projet existant
la source
Création d'une branche locale à partir d'une branche existante (peut être master / develop / any-other-branch).
Poussez ceci à distance
Ici,
Si nous supprimons les noms de branche locale et distante, elle aura le format
Cela poussera la branche locale à distance et avec le même nom que la branche locale nom_branche. La branche locale suivra également la branche distante.
la source
Je sais que cette question est bien répondue, mais je voulais simplement énumérer les étapes que je prends pour créer une nouvelle branche "myNewBranch" et pousser à distance ("origine" dans mon cas) et configurer le suivi. Considérez ceci comme la version "TL; DR" :)
la source
Maintenant, avec git, vous pouvez simplement taper, lorsque vous êtes dans la bonne branche
git push --set-upstream origin <remote-branch-name
>et git créer pour vous la branche d'origine.
la source
Je voulais juste ajouter cela pendant:
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 couper une branche mais pas d'en faire votre branche actuelle, vous utiliserez la commande suivante:
Dans la première commande, "checkout" fait de cette branche votre branche actuelle, et le "-b" signifie: cette branche n'existe pas encore, alors faites-la pour moi.
la source
Comment faire via l'arbre source
la source
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 référentiel, c'est-à-dire si vous n'avez pas créé la nouvelle branche en utilisantgit checkout -b new_branch
, alors cela ne fonctionnera pas.Par exemple, j'avais cloné deux référentiels différents localement et je devais copier repo2 / branch1 vers repo1 / puis le pousser aussi.
Ce lien m'a aidé à transférer ma branche locale (clonée à partir d'un autre référentiel) vers mon référentiel distant:
la source
Voici comment vous le faites en éclipse via Egit.
1) Accédez à la vue "Git Repository Exploring" et expliquez le projet git dans lequel 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 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 d'extraction de ce projet, puis cliquez sur le bouton Terminer.
2) Maintenant, dans l'explorateur de projet, sélectionnez le projet .. cliquez avec le bouton droit puis sur Équipe -> Branche push.
Une nouvelle branche distante sera créée. Vous pouvez donner le nom de la branche à vos collègues afin qu'ils puissent la retirer.
la source
J'ai utilisé deux façons de créer une branche
Si vous utilisez TortoiseGit, suivez ces étapes: -
1.Créez une branche à l'aide de TortoiseGit
2.Poussez la branche
Passer à une nouvelle succursale
Si vous utilisez l'invite de commande, procédez comme suit: -
1.Créer une branche à l'aide de l'invite de commande
2.Poussez la branche
3.Passez à la nouvelle branche, elle sera déjà commutée sur new_branch_name sinon vous pouvez utiliser
la source
J'utilise ceci et c'est assez pratique:
Vous n'avez même pas besoin du statut git; peut-être, je veux juste m'assurer que tout se passe bien ...
Vous pouvez avoir les deux branches LOCAL et REMOTE avec une seule commande.
la source