J'ai un fichier avec une ligne dedans. Je crée une branche et ajoutez une deuxième ligne au même fichier. Économiser et s'engager dans la branche. Je retourne au maître. Et ajoutez une autre ligne différente au fichier. Économiser et s'engager envers le maître. Donc, il y a maintenant 3 lignes uniques au total.
Si j'essaie maintenant de fusionner la succursale à la maîtrise, elle subit un conflit de fusion. P>
Pourquoi ne peut pas giter de simples fusionner chaque ligne, l'une après l'autre ? P>
Ma tentative de fusion se comporte quelque chose comme ceci: p>
PS D:\dev\testing\test1> git merge newbranch Auto-merging hello.txt CONFLICT (content): Merge conflict in hello.txt Automatic merge failed; fix conflicts and then commit the result. PS D:\dev\testing\test1> git diff diff --cc hello.txt index 726eeaf,e48d31a..0000000 --- a/hello.txt +++ b/hello.txt @@@ -1,2 -1,2 +1,6 @@@ This is the first line. - New line added by master. -Added a line in newbranch. ++<<<<<<< HEAD ++New line added by master. ++======= ++Added a line in newbranch. ++>>>>>>> newbranch
4 Réponses :
Je peux vous dire pourquoi il ne peut pas fusionner les deux - selon GIT, la ligne 2 de Filea est "telle et telle" alors que la ligne 2 de Fileb est "autre chose". Selon GIT, il tente de créer un fichier à partir de Filea et FileB avec une ligne ayant deux valeurs possibles. Il ne peut pas décider lequel vous voulez, alors il les dépose les deux et vous permet de le réparer. P>
Disons que la branche de fichier A ressemble à: et branche b ressemble à: p> lorsque vous fusionnez, il y a deux façons différentes de le résoudre. Voici une façon: p> First line
Branch B's second line
Branch A's second line
Disons que vous avez cette ligne:
if(y>10) printf(something);
Il existe une stratégie de fusion GIT appelée Vous pouvez également définir une stratégie de fusion personnalisée qui pourrait utiliser certaines connaissances spécialisées sur la structure des fichiers afin de déterminer le bon ordre. P> Union code> qui peut être configurée à partir du fichier .gitaTtributes code> configuration qui le fera pour vous, mais vous n'aurez aucun contrôle sur le Commandez les lignes contradictoires se retrouvera dans le fichier fusionné et aucun marqueur de conflit n'indique que cela s'est produit. P>
Ne semble pas comme s'il y a un moyen simple de déterminer l'ordre dans lequel ils doivent être fendus - après tout, l'ordre peut certainement avoir une matière en matière de code exécutable.