Utilisation de git branch pour fusionner dans la ligne principale principale, mais comme un fichier a été modifié en même temps, il y avait beaucoup plus de fichiers après la fusion <<<HEAD
Comme ça ! Comment résoudre les conflits ? Dois-je modifier manuellement le fichier de conflit et supprimer ces <<<HEAD
>>>DEV
avant de le soumettre ?
cd ~
mkdir demo
cd demo
git init
git status // on branch master
echo "first line " >> index.txt
git add . && git commit -m "first head"
git status // on branch master
git branch // * master
git branch dev
git checkout dev
git branch // * dev ,master
ls // index.txt
echo "sec line in dev" >> index.txt
git add . && git commit -m "in branch dev"
git checkout master
git status // on branch master
echo "sec line on branch master" >> index.txt
git add . && git commit -m "2"
git merge dev
Auto-merging index.txt
CONFLICT (content): Merge conflict in index.txt
Automatic merge failed; fix conflicts and then commit the result.
git diff index.txt
diff --cc index.txt
index dda3583,8fa96cd..0000000
--- a/index.txt
+++ b/index.txt
@@@ -1,2 -1,2 +1,6 @@@
first line
++<<<<<<< HEAD
+sec line on branch master
++=======
+ sec line in dev
++>>>>>>> dev
first line
<<<<<<< HEAD
sec line on branch master
=======
sec line in dev
>>>>>>> dev
Fusionnez le développeur avec le master, et ce fichier apparaît <<< HEAD
>>> dev
Comme ça, comment réussir à les fusionner ? Dois-je le modifier manuellement et le soumettre à nouveau ?
S'il y a des conflits, vous devez les modifier manuellement ! Ce problème se produit généralement dans les équipes composées de plusieurs personnes ! Lorsque vous résolvez des conflits, essayez de travailler avec vos coéquipiers !
Si un conflit survient lors de la fusion lorsqu'il est déterminé qu'il peut être fusionné (par exemple, lorsqu'il n'y a aucun problème avec le code de l'agence), un traitement manuel est nécessaire. Bien sûr, gérer les conflits sur le maître est une véritable plaie. Une autre méthode est donc nécessaire.
Il y a deux idées :
Utilisez master pour fusionner la branche dev, de sorte que le conflit se produise sous la branche dev. Après l'avoir résolu manuellement, la fusionner avec master est simplement une avance rapide ;
Oui, parce que vous avez changé au même endroit, vous devez résoudre manuellement le conflit. Fusionnez simplement les positions marquées en un seul code. Ou vous pouvez utiliser Cherry-pick ou rebase pour éviter certains conflits
Généralement, la branche master est utilisée pour fusionner la branche dev. Le conflit réel résolu est sur dev. Il est recommandé d'examiner attentivement les différences de conflit pour éviter d'affecter le code des autres.
Bien que les outils en ligne de commande soient très puissants, il reste très pratique d'utiliser des outils visuels après avoir compris les principes, notamment lors de la résolution de conflits.
.Lorsqu'un tel conflit survient, il doit être soigneusement résolu manuellement. Grâce aux outils de visualisation, vous pouvez facilement visualiser les conflits et passer rapidement d'un point de conflit à l'autre. La plupart des conflits peuvent être résolus en quelques clics de souris.
Il est recommandé d'utiliser git avec la ligne de commande et les outils visuels. Un meilleur outil visuel est TortoiseGit
Il est recommandé d'utiliser des outils de comparaison visuelle tels que p4merge De plus, tant que les développeurs utilisent git conformément aux spécifications, il n'y aura pas de conflits de maître de fusion. utilisation de git Actuellement, j'utilise git -flow
.