Est-il possible de valider et de pousser des modifications d'une branche à une autre?
Supposons que j'ai validé les modifications dans BRANCH1 et que je souhaite les transférer vers BRANCH2 .
Depuis BRANCH1 , est-il valable de faire:
git push origin **BRANCH2**
Et puis réinitialiser BRANCH1?
git
git-branch
jviotti
la source
la source
branch1
etbranch2
doivent-ils être sur la télécommande? Et si vous voulez passer du localbranch1
à la télécommandeorigin branch2
?<remote>/<branch>
git push origin :branch2
pensant qu'il ne ferait que pousser la branche locale actuelle vers la télécommandebranch2
, qu'il supprimera plutôt la télécommandebranch2
! La bonne façon estgit push origin HEAD:branch2
.Certes, cela ne fonctionnera que si c'est une avance rapide de BRANCH2 ou si vous le forcez. La syntaxe correcte pour faire une telle chose est
Voir la description d'une "refspec" sur la page de manuel de git push pour plus de détails sur son fonctionnement. Notez également qu'une poussée forcée et une réinitialisation sont des opérations qui "réécrivent l'historique", et ne devraient pas être tentées par les faibles de cœur à moins que vous ne soyez absolument sûr de savoir ce que vous faites en ce qui concerne les référentiels distants et autres les gens qui ont des fourches / clones du même projet.
la source
git push --force remote local-branch:remote-branch
.C'est très simple. Supposons que vous avez apporté des modifications à votre branche A qui réside à la fois localement et à distance, mais que vous souhaitez transmettre ces modifications à la branche B qui n'existe nulle part.
Étape 01: créer et basculer vers la nouvelle branche B
Étape 02: ajouter des modifications dans la nouvelle branche locale
Étape 03: valider les modifications
Etape-04: Poussez des modifications à la nouvelle branche B . La commande ci-dessous créera également une nouvelle branche B à distance
Maintenant, vous pouvez vérifier à partir bitbucket que la branche B aura une plus commettras que la branche A . Et quand vous checkout la branche A ces changements ne seront pas là car ils ont été poussés dans la branche B .
Remarque: Si vous avez validé vos modifications dans la branche A et que vous souhaitez ensuite les déplacer dans la nouvelle branche B, vous devrez d'abord réinitialiser ces modifications. #Bon apprentissage
la source
Dans mon cas, j'avais un commit local, qui n'a pas été poussé vers
origin\master
, mais engagé dans mamaster
branche locale . Ce commit local doit maintenant être poussé vers une autre branche.Avec Git Extensions, vous pouvez faire quelque chose comme ceci:
Vous pouvez également le faire sur la ligne de commande GIT . Exemple copié de David Christensen :
la source
J'ai obtenu un mauvais résultat avec la
git push origin branch1:branch2
commande:Dans mon cas,
branch2
est supprimé etbranch1
a été mis à jour avec de nouvelles modifications.Par conséquent, si vous souhaitez uniquement que les modifications soient activées à
branch2
partir de labranch1
, essayez les procédures ci-dessous:branch1
:git add .
branch1
:git commit -m 'comments'
Le
branch1
:git push origin branch1
Le
branch2
:git pull origin branch1
On
branch1
: revenir à la validation précédente.la source
vous pouvez le faire facilement
la source
la source
Vous vous êtes engagé sur BRANCH1 et souhaitez vous débarrasser de ce commit sans perdre les modifications? git reset est ce dont vous avez besoin. Faire:
si vous voulez que BRANCH2 soit une nouvelle branche. Vous pouvez également fusionner cela à la fin avec une autre branche si vous le souhaitez. Si BRANCH2 existe déjà, ignorez cette étape.
Alors fais:
si vous souhaitez réinitialiser la validation sur la branche que vous avez validée. Cela prend les changements des trois derniers commits.
Procédez ensuite comme suit pour apporter les validations réinitialisées à BRANCH2
Cette source a été utile: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
la source