Poussez s'engage à une autre branche
Est-il possible de s'engager et d'envoyer les modifications d'une branche à l'autre.
Que j'ai commis des changements dans BRANCH1 et veulent les pousser à (SESC) 2.
De BRANCH1, est-il valable de le faire:
git push origin **BRANCH2**
Puis réinitialiser BRANCH1?
Vous devez vous connecter pour publier un commentaire.
Presque travail.
Lorsque le poussant à un non-branche par défaut, vous devez spécifier la source de référence et la cible ref:
Ou
branch1
etbranch2
besoin d'être sur la télécommande? Que faire si vous voulez pousser de locauxbranch1
à la distanceorigin branch2
?<remote>/<branch>
git cherry-pick
de créer une branche locale de la branche distante qui a aussi qui s'engagent, puis poussez la branchegit push origin :branch2
en pensant qu'il suffit de pousser le courant de la succursale locale de la télécommandebranch2
, qu'il sera à la place supprimer de la télécommandebranch2
! La manière correcte estgit push origin HEAD:branch2
.branch2
a été supprimé! et les changements induits surbranch1
Certainement, mais il ne fonctionnera que si c'est une avance rapide de (SESC) 2 ou si vous avez la force. La syntaxe correcte pour faire une telle chose est
Voir la description d'un "refspec" sur le git push page de man pour plus de détails sur la façon dont il fonctionne. Notez également que la fois une force de poussée et une remise à zéro sont des opérations qui "réécrire l'histoire", et ne devrait pas être tenté par les faibles de cœur, sauf si vous êtes absolument sûr que vous savez ce que vous faites à l'égard de toute dépôts distants et d'autres gens qui ont des fourches/clones d'un même projet.
git push --force remote local-branch:remote-branch
.C'est très simple. Supposons que vous avez apporté des modifications à votre Succursale Un qui réside à la fois localement et à distance, mais vous voulez pousser ces changements à la Direction de la B qui n'existe nulle part.
Étape-01: de créer et de passer à la nouvelle branche B
Étape-02: Ajouter des changements dans les nouveaux locaux de la branche
Étape-03: valider les modifications
Étape-04: Pousser des modifications à la nouvelle branche B. La commande ci-dessous permettra de créer une nouvelle branche B ainsi à distance
Maintenant, vous pouvez vérifier à partir de bitbucket que la direction générale B aura un plus commettre de branche Un. Et quand vous aurez la caisse de la direction de la Un ces changements ne seront pas là, car ils ont été poussés dans la direction de la B.
Remarque: Si vous avez attaché vos changements dans la direction de la Un et que vous souhaitez modifier ces changements dans la nouvelle branche B ensuite, vous devrez réinitialiser ces changements. #HappyLearning
Dans mon cas, j'ai eu une validation, ce qui n'était pas poussé à
origin\master
, mais engage à mon localmaster
branche. Cette validation devrait être maintenant poussé à une autre branche.Avec Git Extensions vous pouvez faire quelque chose comme ceci:
Vous pourriez aussi le faire sur le GIT en ligne de commande. Exemple copié à partir de David Christensen:
- Je obtenir un mauvais résultat avec
git push origin branch1:branch2
commande:Dans mon cas,
branch2
a été supprimé etbranch1
a été mis à jour avec les nouvelles modifications.Donc, si vous voulez que les changements de pousser sur la
branch2
de labranch1
, essayez les procédures suivantes:branch1
:git add .
branch1
:git commit -m 'comments'
Sur
branch1
:git push origin branch1
Sur
branch2
:git pull origin branch1
Sur
branch1
: revenir à la précédente livraison.vous pouvez le faire facilement
Vous avez commis de BRANCH1 et que vous voulez vous débarrasser de ce commit sans perdre les modifications?
git reset est ce que vous avez besoin.
Faire:
si vous voulez (SESC) 2 être une nouvelle branche. Vous pouvez également fusionner à la fin avec une autre branche si vous le souhaitez. Si (SESC) 2 existe déjà, alors laissez cette étape.
Alors:
si vous souhaitez réinitialiser le commit sur la branche que vous avez commis. Cela prend les modifications des trois derniers commits.
Puis effectuez les opérations suivantes pour amener les remises à zéro s'engage à (SESC) 2
Cette source a été très utile:
https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch