Gitのmerge.conflictStyle の値を diff3 に設定するメリットとは?
ぞす!げんきちです!\\\\٩( 'ω' )و ////
「いや、誰だよ」って方は、下記リンクを見てやってください。
目次〜
- merge.conflictStyle の値がデフォルトの merge の場合
- merge.conflictStyle の値を diff3の場合
- merge.conflictStyle の値を diff3 に設定すると得られるメリット
merge.conflictStyle の値がデフォルトの merge の場合
マージコンフリクトは以下のように生じます。
「テストだよ。」と「テストでござる。」どっちにしますか?状態です。
自分1人で開発している場合は、当然「テスト1」と書いた意図も自分で分かっている訳なので、このデフォルト設定でも支障はありません。
しかし、チーム開発などで、自分以外のメンバーが書いたコードとのコンフリクトであった場合には、ちょっと事情が変ります。
本人に確認するまでそのコードの意図を正確に汲むことができません。
merge.conflictStyle の値を diff3の場合
そこで、以下のようにコンフリクトの設定を変更します。
【ターミナル】
そうすると、以下のようになります。
ancestorsは「祖先」という意味らしいです。
つまり、masterとHEADの共通祖先のコミット情報を確認できるようになりました!
上記の例であれば、チームの開発メンバーは、
「テストだお。」を「テストだよ。」に変更した
という変更の経緯を確認することができます。
merge.conflictStyle の値を diff3 に設定すると得られるメリット
このようにマージコンフリクトを解決する際に, マージするブランチ同士の共通祖先の内容を確認することができると、
このブランチのこの内容は元からあったものなのか
修正されたものなのか
それとも新しく追加されたものなのか
といったより詳しい情報を得ることができます。
デフォルトの merge ですと, マージする 2 つのブランチの先端の違い, 比較にとどめられます 。
その違い、 競合がどのような経緯で発生したのかということまではわかりません。
ばんざい!\(^o^)/
<一日一新>
セブンイレブン えびちりマン。ちょっと高いけど、おいしいー。
<学習進捗>
学習開始からの期間 :97日
今日までの合計時間:948h
今日までに到達すべき目標時間:883h
目標との解離:65h
「10,000時間」まで、
残り・・・「9,052時間!」
以上です。
読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。