lab 30 Resolviendo Conflictos

Metas

Fusionar "master" a "greet" 01

Regrese a la rama "greet" e intente fusionar el nuevo "master".

Ejecute:

git checkout greet
git merge master

Salida:

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

Si abre lib/hello.rb, podrá ver:

Archivo: lib/hello.rb

<<<<<<< HEAD
require 'greeter'

# Default is World
name = ARGV.first || "World"

greeter = Greeter.new(name)
puts greeter.greet
=======
# Default is World

puts "What's your name"
my_name = gets.strip

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

La primera sección es la versión en el encabezamiento de la ramificación actual (greet). La segunda sección es la versión en la rama "master".

Corija el Conflicto 02

Necesita resolver el conflicto manualmente. Modifique lib/hello.rb para tener lo siguiente:

Archivo: lib/hello.rb

require 'greeter'

puts "What's your name"
my_name = gets.strip

greeter = Greeter.new(my_name)
puts greeter.greet

Commit the Conflict Resolution 03

Ejecute:

git add lib/hello.rb
git commit -m "Merged master fixed conflict."

Salida:

$ git add lib/hello.rb
$ git commit -m "Merged master fixed conflict."
[greet 3165f66] Merged master fixed conflict.

Fusión Avanzada 04

git no provee una herramienta gráfica para fusionar, pero funcionará correctamente con cualquier herramienta de terceros que desee utilizar. Vea http://onestepback.org/index.cgi/Tech/Git/UsingP4MergeWithGit.red para una descripción de cómo utilizar "Perforce", una herramienta para fusión con git.

Tabla de Contenidos