LoginSignup
63
52

More than 5 years have passed since last update.

Gitでコンフリクト対処時の便利コマンド検証

Last updated at Posted at 2014-06-21

コンフリクトが発生した時、Gitのコマンドだけで対処できる方法があるらしい。

Gitでバイナリファイルがコンフリクトした際の対処方法

git checkout --theirs 対象ファイル

で、マージ先を採用。

git checkout --ours 対象ファイル

で、マージ元を採用。

というもの。

検証してみる

※結果だけ知りたい人は「コンフリクトさせよう」まで飛ばしてもらって構いません。

準備

簡単なファイルを使って調べてみる。Gitのバージョンは 1.8.4

リポジトリに testA.txtファイルを置く

testA.txt
あまみはるか 17
きさらぎちはや 16
ほしいみき 16
はぎわらゆきほ 17
きくちまこと 17
がなはひびき 16

のワの<ファイルの中身に意味はありませんよ

コンフリクトさせるためのブランチを作る

[master]git checkout -b songs
でsongsブランチ作成。

んで

[songs]testA.txt
あまみはるか 乙女よ大志を抱け
きさらぎちはや 蒼い鳥
ほしいみき Relations
はぎわらゆきほ First Stage
きくちまこと 自転車
がなはひびき TRIAL DANCE                          

こうしてコミット。
[songs]git add .
[songs]git commit -m "add songs"

準備完了。

コンフリクトさせよう

masterブランチにsongsブランチをマージ
[master]git merge songs
すると

Auto-merging testA.txt
CONFLICT (content): Merge conflict in testA.txt
Automatic merge failed; fix conflicts and then commit the result.

無事コンフリクト成功。 やったぜ。

中身を見てみる

[master]testA.txt
<<<<<<< HEAD
あまみはるか 17
きさらぎちはや 16
ほしいみき 16
はぎわらゆきほ 17
きくちまこと 17
がなはひびき 16
=======
あまみはるか 乙女よ大志を抱け
きさらぎちはや 蒼い鳥
ほしいみき Relations
はぎわらゆきほ First Stage
きくちまこと 自転車
がなはひびき TRIAL DANCE
>>>>>>> songs

上がmasterブランチ、下がsongsブランチの内容。

コマンド使ってみる

やってみる
[master]git checkout --theirs testA.txt
すると

[master]textA.txt
あまみはるか 乙女よ大志を抱け
きさらぎちはや 蒼い鳥
ほしいみき Relations
はぎわらゆきほ First Stage
きくちまこと 自転車
がなはひびき TRIAL DANCE

マージ先(songsブランチ)が採用された。

もう一つのコマンドも使ってみる
[master]git checkout --ours testA.txt
こうなった

[master]testA.txt
あまみはるか 17
きさらぎちはや 16
ほしいみき 16
はぎわらゆきほ 17
きくちまこと 17
がなはひびき 16

マージ元(masterブランチ)が採用された。予想通り。

結論

Gitすごい!!!!

63
52
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
52