lab 30 Résolution des conflits

Buts

Fusionner master dans saluer 01

Maintenant, retournons dans la branche saluer et essayons de fusionner master.

Execute:

git checkout greet
git merge master

Output:

$ git checkout greet
Switched to branch 'greet'
$ git merge master
Auto-merging lib/bonjour.rb
CONFLICT (content): Merge conflict in lib/bonjour.rb
Automatic merge failed; fix conflicts and then commit the result.

Si vous ouvrez lib/bonjour.rb, vous allez voir:

File: lib/bonjour.rb

<<<<<<< HEAD
require 'faireunsalut'

# L'argument par défaut est Monde
name = ARGV.first || "Monde"

faireunsalut = Faireunsalut.new(name)
puts faireunsalut.saluer
=======
# L'argument par défaut est Monde

puts "Quelle est votre nom?"
my_name = gets.strip

puts "Bonjour, #{my_name}!"
>>>>>>> master

La première section est la version dans le head de la branche courante (saluer). La deuxième section est la version dans la branche master.

Corriger le conflit 02

Vous devez manuellement résoudre le conflit. Modifier lib/bonjour.rb pour être comme suivant.

File: lib/bonjour.rb

require 'faireunsalut'

puts "Quelle est votre nom?"
my_name = gets.strip

faireunsalut = Faireunsalut.new(my_name)
puts faireunsalut.saluer

Commiter la résolution du conflit 03

Execute:

git add lib/bonjour.rb
git commit -m "La fusion depuis master corrige le conflit"

Output:

$ git add lib/bonjour.rb
$ git commit -m "La fusion depuis master corrige le conflit"
[master ee34d83] La fusion depuis master corrige le conflit
 1 file changed, 4 insertions(+), 1 deletion(-)

Fusion avancée 04

Git ne propose aucun outil graphique de fusion, mais il fonctionnera très bien avec n’importe quel outil tiers de fusion que vous souhaiteriez utiliser. Voir http://onestepback.org/index.cgi/Tech/Git/UsingP4MergeWithGit.red pour une description de l’utilisation de l’outil de fusion Perforce avec git.

Table des matières