片方は名前変更、もう片方は変更

A が old/name.js を new/name.js に名前変更(R086)し、B は new/name.js を変更して old/name.js を削除した、状態が食い違う例です。

入力

A の git diff --name-status の出力

R086	old/name.js	new/name.js

B の git diff --name-status の出力

M	new/name.js
D	old/name.js

結果

エラー 0 件・警告 1 件・情報 1 件

指摘(エラー・警告・情報)

  • 警告 new/name.js A は 名前変更、B は 変更 です。同じファイルを別の形で変えているため、統合時に衝突しやすい組み合わせです。
  • 情報 全体 --name-status のファイル名と状態だけを比べています。同じファイルを両方で変えていても、変更の中身(行)が衝突するかは判定しません。
A の変更ファイル1 件
B の変更ファイル2 件
両方で同じ状態0 件
両方で状態が違う1 件
A のみ0 件
B のみ1 件

比較表

比較表
パスAB区分
new/name.jsR086(名前変更) ← old/name.jsM(変更)両方で変更・状態が違う
old/name.js-D(削除)B のみ

検算(この結果になる理由)

名前変更は新パス new/name.js をキーにします。A は R086(名前変更)、B は M(変更)で状態が違うので警告です。old/name.js は B で削除されているだけなので B のみに出ます。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • この比較は衝突の見当をつけるためのものです。実際の衝突はマージしてみないと分かりません。
  • ブランチ名・ファイル名は端末の外へ送信されませんが、貼り付ける画面の取り扱いには注意してください。

ほかの入力例