Table des matières
Comment git résout-il les conflits de fusion
1.1, code de branche principale
Il y en a deux. fichiers dans la branche tronc
tom a créé la branche A et a apporté les modifications suivantes au fichier
jack a apporté les modifications suivantes au code
L'étape suivante est Comment résoudre le conflit
Maison outils de développement git Comment résoudre les conflits de fusion dans git

Comment résoudre les conflits de fusion dans git

Jun 24, 2022 am 11:30 AM
git

Comment résoudre les conflits de fusion avec git : 1. Modifiez les fichiers en conflit, supprimez les symboles spéciaux dans les fichiers et modifiez le code si nécessaire ; 2. Ajoutez les fichiers spécifiés à la zone de préparation et soumettez les branches spécifiées au trunk. Exécutez simplement le commit Lorsque vous utilisez la commande "git commit", vous ne pouvez pas inclure un nom de fichier. Si vous ajoutez un nom de fichier, une erreur sera signalée.

Comment résoudre les conflits de fusion dans git

L'environnement d'exploitation de cet article : système Windows 10, Git version 2.30.0, ordinateur Dell G3.

Comment git résout-il les conflits de fusion

conflits git

Lorsque plusieurs codes de branche sont fusionnés en une seule branche, le même fichier est modifié dans les deux branches, peu importe où la modification est effectuée, elle se produira

 ; Il existe également une sorte de deux Occurs lorsque le nom d'un même fichier est modifié dans deux branches.

Cause

Lors de la fusion de branches, les deux branches ont deux ensembles de modifications complètement différents dans le même fichier. Git ne peut pas décider à notre place lequel utiliser. Le contenu du nouveau code doit être décidé manuellement.

Solution

Modifiez le fichier en conflit, supprimez les symboles spéciaux et décidez quel contenu utiliser

Ajoutez-le à la zone de préparation

Exécutez le commit (Remarque : vous ne pouvez pas utiliser la commande git commit avec un nom de fichier à ce moment, ajoutez Une erreur sera signalée pour le nom du fichier, et la fusion disparaîtra après une soumission réussie)

Les exemples sont les suivants :

1 Occurrence de conflit

1.1, code de branche principale

Il y en a deux. fichiers dans la branche tronc

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is master";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch master\n");
	
	return 0;
}
Copier après la connexion

README md

this is master branch
Copier après la connexion

A ce moment, tom et jack ont ​​respectivement extrait le code de la branche tronc et ont apporté des modifications.

1.2, Tom a modifié le code et l'a soumis pour fusion

tom a créé la branche A et a apporté les modifications suivantes au fichier

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is A";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch AAA\n");
	
	return 0;
}
Copier après la connexion

README.md

this is AAA branch
Copier après la connexion

a soumis le code et l'a fusionné dans le tronc

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git commit -m "A分支代码提交"
[A ccb2626] A分支代码提交
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git push origin A
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 376 bytes | 376.00 KiB/s, done.
Total 4 (delta 1), reused 3 (delta 1), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
remote: Create a pull request for &#39;A&#39; on Gitee by visiting:
remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:A...lingpe:master
To https://gitee.com/lingpe/kaol.git
 * [new branch]      A -> A

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$ git merge A
Updating 40c0115..ccb2626
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$ git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   40c0115..ccb2626  master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$
Copier après la connexion

1.3, jack a modifié le code Soumettre la fusion

jack a apporté les modifications suivantes au code

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is B";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch BBB\n");
	
	return 0;
}
Copier après la connexion

README.md

this is BBB branch
Copier après la connexion

Soumettre le code et le fusionner dans le coffre

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git commit -m "B分支代码提交"
[B bdcbe03] B分支代码提交
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git push origin B
Enumerating objects: 53, done.
Counting objects: 100% (53/53), done.
Delta compression using up to 12 threads
Compressing objects: 100% (34/34), done.
Writing objects: 100% (50/50), 4.66 KiB | 2.33 MiB/s, done.
Total 50 (delta 16), reused 43 (delta 12), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
remote: Create a pull request for &#39;B&#39; on Gitee by visiting:
remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:B...lingpe:master
To https://gitee.com/lingpe/kaol.git
 * [new branch]      B -> B

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git merge B
Updating 40c0115..bdcbe03
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
Copier après la connexion

Des conflits sont survenus en poussant

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git push origin master
To https://gitee.com/lingpe/kaol.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/lingpe/kaol.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
Copier après la connexion

2. Résoudre le conflit

L'étape suivante est Comment résoudre le conflit

                                                                                                                                                                   ensemble pour l'emporter sur le conflit.

Ouvrez directement le fichier main.cpp. Vous pouvez voir les caractères spéciaux suivants, qui nous indiquent quelle ligne de code provoque un conflit.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git pull origin master
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 356 bytes | 178.00 KiB/s, done.
From https://gitee.com/lingpe/kaol
 * branch            master     -> FETCH_HEAD
   40c0115..ccb2626  master     -> origin/master
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
Copier après la connexion

Résolvez les conflits manuellement directement dans le fichier. Supprimez les caractères spéciaux du fichier et modifiez le code si nécessaire.

#include <stdio.h>
#include <string.h>

int main()
{
<<<<<<< HEAD
        char data[100] = "my branch name is B";
=======
        char data[100] = "my branch name is A";
>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787
        int length = strlen(data);

        for(int i = 0; i < length; i++)
        {
                printf("%c", data[i]);
        }

<<<<<<< HEAD
        printf("branch BBB\n");
=======
        printf("branch AAA\n");
>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787

        return 0;
}
Copier après la connexion

De même, pour README.md, résolvez manuellement les conflits.

#include <stdio.h>
#include <string.h>

int main()
{
        char data[100] = "my branch name is B and A";
        int length = strlen(data);

        for(int i = 0; i < length; i++)
        {
                printf("%c", data[i]);
        }

        printf("branch BBB\n");
        printf("branch AAA\n");
        return 0;
}
~
Copier après la connexion

Après avoir résolu le conflit, soumettez-le à la branche B

this is BBB and AAA branch
Copier après la connexion

Fusionnez enfin la branche B dans le tronc, et il n'y aura pas de conflits

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)
$ git commit -m "解决冲突"
[B f30e1ea] 解决冲突

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git push origin B
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 405 bytes | 405.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   bdcbe03..f30e1ea  B -> B

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$
Copier après la connexion

À ce stade, le conflit est résolu avec succès

Vous pouvez prendre un regardez le code de la branche tronc

main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git checkout master
Switched to branch 'master'
Your branch and 'origin/master' have perged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git merge B
Updating bdcbe03..f30e1ea
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   ccb2626..f30e1ea  master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
Copier après la connexion

README.md

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is B and A";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch BBB\n");
	printf("branch AAA\n");
	return 0;
}
Copier après la connexion

OK

Apprentissage recommandé : "

Tutoriel Git

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Gitee Pages STATIQUE Le déploiement du site Web a échoué: comment dépanner et résoudre les erreurs de fichier unique 404? Apr 04, 2025 pm 11:54 PM

GiteEpages STATIQUE Le déploiement du site Web a échoué: 404 Dépannage des erreurs et résolution lors de l'utilisation de Gitee ...

Comment exécuter le projet H5 Comment exécuter le projet H5 Apr 06, 2025 pm 12:21 PM

L'exécution du projet H5 nécessite les étapes suivantes: Installation des outils nécessaires tels que le serveur Web, Node.js, les outils de développement, etc. Créez un environnement de développement, créez des dossiers de projet, initialisez les projets et écrivez du code. Démarrez le serveur de développement et exécutez la commande à l'aide de la ligne de commande. Aperçu du projet dans votre navigateur et entrez l'URL du serveur de développement. Publier des projets, optimiser le code, déployer des projets et configurer la configuration du serveur Web.

Comment spécifier la base de données associée au modèle de Beego ORM? Comment spécifier la base de données associée au modèle de Beego ORM? Apr 02, 2025 pm 03:54 PM

Dans le cadre du cadre de beegoorm, comment spécifier la base de données associée au modèle? De nombreux projets Beego nécessitent que plusieurs bases de données soient opérées simultanément. Lorsque vous utilisez Beego ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

La production de pages H5 nécessite-t-elle une maintenance continue? La production de pages H5 nécessite-t-elle une maintenance continue? Apr 05, 2025 pm 11:27 PM

La page H5 doit être maintenue en continu, en raison de facteurs tels que les vulnérabilités du code, la compatibilité des navigateurs, l'optimisation des performances, les mises à jour de sécurité et les améliorations de l'expérience utilisateur. Des méthodes de maintenance efficaces comprennent l'établissement d'un système de test complet, à l'aide d'outils de contrôle de version, de surveiller régulièrement les performances de la page, de collecter les commentaires des utilisateurs et de formuler des plans de maintenance.

Comment obtenir les données de la région d'expédition de la version à l'étranger? Quelles sont les ressources prêtes à l'emploi disponibles? Comment obtenir les données de la région d'expédition de la version à l'étranger? Quelles sont les ressources prêtes à l'emploi disponibles? Apr 01, 2025 am 08:15 AM

Description de la question: Comment obtenir les données de la région d'expédition de la version à l'étranger? Y a-t-il des ressources prêtes à l'emploi disponibles? Soyez précis dans le commerce électronique transfrontalier ou les entreprises mondialisées ...

See all articles