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.
MISE À JOUR Git 2.0 offre une réponse plus simple . J'ai écrit ci-dessous: https://stackoverflow.com/a/27185855/109305
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
_
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>
Où <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.
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
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>
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.
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
.
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.
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.
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é!
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]
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,
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.
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
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.
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)
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.
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:
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.
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.