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. Tout d'abord je veux créer une branche locale, et je ne la pousserai en amont que lorsque je serai satisfait et que je voudrai partager ma branche.
MISE À JOUR Avec Git 2.0, il existe une réponse plus simple que j'ai écrite ci-dessous : https://stackoverflow.com/a/27185855/109305
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 automatiquement créée lorsque vous la poussez sur le serveur distant. Ainsi, lorsque vous vous sentez prêt, vous pouvez simplement le faire :
git push <remote-name> <branch-name>
Où <remote-name>
est typiquement origin
, le nom que git donne à la branche distante depuis laquelle vous avez cloné. Vos collègues n'auront plus qu'à tirer cette branche, et elle sera 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, il suppose que les deux noms de branches sont les mêmes. Ceci dit, en guise de prudence, ne faites pas l'erreur critique de spécifier seulement :<nom-de-branche-distant>
(avec le deux-points), ou la branche distante sera supprimée !
Pour qu'un git pull
ultérieur sache quoi faire, vous pourriez plutôt vouloir utiliser :
git push --set-upstream <remote-name> <local-branch-name>
Comme décrit ci-dessous, l'option --set-upstream
met en place une branche amont :
Pour chaque branche qui est à jour ou poussée avec succès, ajouter une référence amont (suivi) de la référence, utilisée par git-pull(1) sans argument et d'autres commandes. commandes.
Tout d'abord, vous devez créer votre branche localement
git checkout -b your_branch
Ensuite, vous pouvez travailler localement dans votre branche, quand vous êtes prêt à partager la branche, poussez-la. La commande suivante pousse la branche vers le dépôt distant d'origine et en assure le suivi
git push -u origin your_branch
Les coéquipiers peuvent accéder à 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 d'arguments à git push (git push sans arguments poussera master vers master distant, your_branch local vers your_branch distant, etc...)
git push
Les coéquipiers peuvent pousser vers votre branche en faisant des commits puis en poussant explicitement.
... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch
Ou en suivant 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 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>