Notre projet a une branche de développement. J'ai créé une branche de correction de bugs basée sur la branche de développement et modifié un fichier a.Java. Et je sais que d'autres personnes ont changé l'a.Java et ont fusionné pour développer une branche lorsque je corrigeais le bogue.
Maintenant que j'ai corrigé le bogue, je veux fusionner mon code pour développer une branche, mais avant cela, je veux extraire les modifications (car un autre gars a également changé l'a.Java) dans ma branche locale pour vérifier si cela fonctionne. , ai-je raison? Comment puis-je le faire?
Tout d'abord, j'ai tiré tout le code par ' git pull ', et je suis dans ma branche de correction de bugs . Puis j'ai lancé ' git merge develop ', la sortie est vide. Ensuite, je " git merge Origin/develop ". Il affiche les erreurs ci-dessous.
Updating 46f689b..3011608
error: Your local changes to the following files would be overwritten by merge:
projectA/a.Java
Please commit your changes or stash them before you merge.
Aborting
Comment puis-je fusionner la branche de développement dans mon répertoire de travail? Merci.
Comme vous n'avez pas encore envoyé vos commits locaux sur la branche de bogue, vous devez rebaser par-dessus la branche mise à jour (par l'autre développeur) Origin/bug
.
Pour cela, assurez-vous que vous avez définissez d'abord la configuration :
git --global config pull.rebase true
git --global config rebase.autoStash true
(à faire qu'une seule fois, depuis n'importe quel dossier)
Ensuite, pendant que vous êtes dans votre branche actuelle, vous pouvez inclure la contribution d’autre avec un simple:
git pull.
Maintenant, assurez-vous que tout est engagé et que:
git checkout develop
git pull
Enfin, fusionner développer
git checkout bug
git merge develop
Normalement, dans cette situation, voici ce que j'aime faire,
git stash # Stash your local changes
git pull # Update code
git stash apply # Merge your local changes
Maintenant, pour plus de précision, vous pouvez changer de branche avant votre git pull
si vous devez synchroniser une autre branche. De là, vous pouvez revenir sur votre branche de correctifs de bogues et exécuter git stash apply
pour ensuite fusionner avec votre branche develop
.
Parce que vous avez quelques modifications sur ce fichier
Please commit your changes or stash them before you merge.
Suivez simplement ceci:
# save current work state
git stash
# merge from develop
git merge Origin/develop
# recover current work state (get the last item of stash)
git stash pop
Vous devez valider ou cacher vos modifications dans projectA/a.Java avant de fusionner d'autres modifications.
Exemple de validation:
$ git add projectA/a.Java
$ git commit -m "my change message"
$ git pull Origin/develop
Exemple de cachette:
$ git stash
$ git pull Origin/develop
$ git stash apply