web-dev-qa-db-fra.com

git, Comment pousser la branche locale dans la télécommande spécifique

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

13
Eugene

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>

<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.

12
Ajay P. Prajapati

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é.

2
Lawrence Lee