pourriez-vous m'expliquer comment pousser la branche locale vers la branche distante spécifique
$ git branch -vv
dev 4d46c96 [Origin/dev] Merge branch '1783' into dev
dev_3_feature 226b914 second commit in dev_3_feature
dev_second_feature 6b5f10f second commit in dev_2_feature
master baf5fc0 [Origin/master: ahead 1] master feature
* myFeature da5cc64 second commit in dev_1_feature
test 334cf7e commiting my super changes locally
1) Je souhaite que mes fonctionnalités DEV
soient insérées dans Origin/dev
et y rester en tant que succursales, comment faire?
2) quoi/où/comment dois-je configurer localement pour pousser dans Origin/dev
par défaut au lieu de Origin/master
Mettre à jour :
Donc, généralement lorsque vous travaillez avec Remote, vous devez d'abord extraire le référentiel ou la branche.
Si son référentiel alors
git pull Origin
si sa branche alors
git pull Origin <yourRemoteBranchName>
après l'avoir tiré, il sera sur votre machine. Maintenant, votre branche actuelle est yourRemoteBranchName
.
Maintenant, vous avez au-dessus de la branche distante, alors vous pouvez créer votre branche locale à partir de cette branche distante tirée. Il créera une nouvelle branche locale à partir de votre branche distante actuelle.
git checkout -b your_branch
La branche distante est automatiquement créée lorsque vous la poussez vers le serveur distant. Donc, lorsque 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 elle est 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 les mêmes. Cela dit, par mot de prudence , ne commettez pas l'erreur critique de ne spécifier que :<remote-branch-name>
(Avec les deux-points), ou la branche distante sera supprimée!
Pour qu'un git pull
Suivant sache quoi faire, vous pouvez utiliser à la place:
git Push -u <remote-name> <local-branch-name>
Comme décrit ci-dessous, l'option -u
Configure une branche en amont:
Pour chaque branche qui est à jour ou poussée avec succès, ajoutez une référence en amont (suivi), utilisée par git-pull (1) sans argument et d'autres commandes.
Si vous souhaitez fusionner directement avec la branche en amont,
git merge branchName
Vous pouvez vous référer à cette documentation: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging . Il a de très bons exemples.
Basculez vers la branche de développement localement, puis appuyez sur la branche de développement sur la télécommande d'origine:
git checkout dev
git Push -u Origin dev
Le -u
option sur git Push
définit le suivi en amont de sorte que lorsque vous êtes sur la branche dev, git Push
et git pull
fait automatiquement la même chose que git Push Origin dev
et git pull Origin dev
.
Si j'ai mal compris votre question et que vous voulez pousser toutes vos branches avec "dev ..." dans leurs branches respectives sur Origin, vous pouvez faire l'étape ci-dessus pour chacune de ces branches, ou vous pouvez faire git Push Origin --all
pour pousser tous vos branches vers la télécommande d'origine. Donc, sur Origin, vous auriez Origin/dev
, Origin/dev_3_feature
, etc.
Si j'ai mal compris votre question et que vous voulez pousser toutes vos branches avec "dev ..." dans une seule branche distante, eh bien, je vous conseillerais de ne pas le faire. Il est probablement préférable de fusionner/rebaser toutes vos branches de développement en une seule branche, puis de pousser celle-ci vers l'origine. Supposons que vous souhaitiez utiliser la seule branche appelée dev
:
git checkout dev
git merge dev_3_feature
git merge dev_second_feature
git Push -u Origin dev
Après chaque fusion, vous devrez peut-être résoudre des conflits de fusion, alors soyez averti.
Enfin, vous souhaiterez peut-être des noms de branche plus descriptifs pour les futures branches de fonctionnalités, comme des noms comme dev_second_feature
ne vous dit pas vraiment quelle est la fonctionnalité.