鍍金池/ 教程/ Java/ 解決沖突
創(chuàng)建沖突
暫存更改
創(chuàng)建項目
Git 內(nèi)幕:.git 目錄
撤銷本地更改
移動文件
移除 oops 標簽
何為 Origin
再談結(jié)構(gòu)
撤銷暫存的更改
修正提交
別名
檢查狀態(tài)
給版本打標簽
撤銷提交的更改
拉下共享的更改
變基
暫存與提交
合并
合并拉下的更改
更改而非文件
更改原始倉庫
重置 master 分支
回顧克隆的倉庫
變基 VS 合并
共享倉庫
導(dǎo)航分支
重置 greet 分支
添加跟蹤的分支
獲得舊版本
克隆倉庫
Git 內(nèi)幕:直接處理 Git 對象
再談設(shè)置
遠程分支
從分支移除提交
合并回 master
查看分叉的分支
添加遠程倉庫
拉下更改
歷史
在 master 中更改
裸倉庫
做更改
高級/將來的主題
推送更改
多個倉庫
設(shè)置
提交更改
取得更改
托管你的 Git 倉庫
創(chuàng)建分支
解決沖突

解決沖突

目的

學(xué)習(xí)如何在合并時處理沖突。

合并 master 到 greet

現(xiàn)在回到 greet 分支,并嘗試合并新的 master。

$ git checkout greet
$ git merge master
$ 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.

如果你打開 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

第一部分是當(dāng)前分支(greet)頭的版本。第二部分是 master 分支的版本。

修復(fù)沖突

你需要手動解決沖突。根據(jù)下列內(nèi)容來修改 lib/hello.rb。

require 'greeter'

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

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

提交沖突解決

$ git add lib/hello.rb
$ git commit -m "Merged master fixed conflict."
$ git add lib/hello.rb
$ git commit -m "Merged master fixed conflict."
Recorded resolution for 'lib/hello.rb'.
[greet 25f0e8c] Merged master fixed conflict.

高級合并

Git 沒有提供任何圖形化的合并工具,但如果你想要使用第三方合并工具來處理,它將十分樂意。參閱http://onestepback.org/index.cgi/Tech/Git/UsingP4MergeWithGit.red了解 Git 使用 Perforce 合并工具的說明。

上一篇:何為 Origin下一篇:再談設(shè)置