GoGPT Best VPN GoSearch

OnWorksファビコン

git-diff - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで git-diff を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド git-diff です。

プログラム:

NAME


git-diff - コミット間、コミットと作業ツリーなどの変更を表示

SYNOPSIS


git 差分 [オプション] [ ] [--] [ ...]
git 差分 [オプション] --cached [ ] [--] [ ...]
git 差分 【オプション】 [--] [ ...]
git 差分 【オプション】
git 差分 [オプション] [--インデックスなし] [--]

DESCRIPTION


作業ツリーとインデックスまたはツリーの間の変更、インデックス間の変更を表示します
およびツリー、XNUMX つのツリー間の変更、XNUMX つの BLOB オブジェクト間の変更、または変更
ディスク上の XNUMX つのファイル間。

git 差分 [--オプション] [--] [ ...]
このフォームは、インデックスに対して行った変更を表示するためのものです (ステージング領域のインデックス)
次のコミット)。 言い換えれば、違いはあなたのものです 可能性 Gitにさらに指示する
インデックスに追加しますが、まだ追加していません。 これらの変更をステージングするには、 ギット-
加えますとします。

git 差分 --no-index [--オプション] [--] [ ...]
このフォームは、ファイルシステム上の指定された XNUMX つのパスを比較するためのものです。 省略できます
Git によって制御される作業ツリーでコマンドを実行するときの --no-index オプション
パスの少なくとも XNUMX つが作業ツリーの外を指している、またはコマンドの実行時に
Git によって制御される作業ツリーの外。

git 差分 [--オプション] --cached [ ] [--] [ ...]
このフォームは、指定されたコミットに関連して次のコミットのためにステージングした変更を表示します。
. 通常、最新のコミットとの比較が必要になるため、そうでない場合は
与える、デフォルトは HEAD です。 HEAD が存在しない場合 (例: まだ生まれていないブランチ) および
が指定されていない場合、ステージングされたすべての変更が表示されます。 --staged は --cached と同義です。

git 差分 [--オプション] [--] [ ...]
このフォームは、名前付きの作業ツリーに関連する変更を表示するためのものです。
. HEAD を使用して最新のコミットと比較するか、ブランチ名を使用して
別の枝の先端と比較してください。

git 差分 [--オプション] [--] [ ...]
これは、任意の XNUMX つの間の変更を表示するためのものです。 .

git 差分 [--オプション] .. [--] [ ...]
これは前のフォームと同義です。 もしも片側が省略されると、
代わりに HEAD を使用するのと同じ効果があります。

git 差分 [--オプション] ... [--] [ ...]
このフォームは、XNUMX 番目までのブランチの変更を表示します。
、両方の共通の祖先から始まる. 「git diff A...B」は
「git diff $(git-merge-base AB) B」に相当します。 のいずれかを省略できます。 、
代わりに HEAD を使用するのと同じ効果があります。

念のため、エキゾチックなことをしている場合は、すべての
上記の説明では、「..」表記を使用する最後の XNUMX つの形式を除いて、
任意のことができます.

綴り方のより完全なリストについてはの「リビジョンの指定」セクションを参照してください。
ギトレヴィジョンズ(7)。 ただし、「diff」はXNUMXつを比較することです エンドポイント、範囲ではなく、
範囲表記 (" .. " と " ... ") は範囲を意味するものではありません
の「SPECIFYING RANGES」セクションで定義されている ギトレヴィジョンズとします。

git 差分 【オプション】
このフォームは、XNUMX つの BLOB オブジェクトの生のコンテンツの違いを表示するためのものです。

OPTIONS


-p、-u、--patch
パッチを生成します (パッチの生成に関するセクションを参照してください)。 これがデフォルトです。

-s、--パッチなし
diff 出力を抑制します。 パッチを表示する git show などのコマンドに便利です。
デフォルト、または --patch の効果をキャンセルします。

-U 、 --unified=
差分を生成する通常の XNUMX 行ではなく、コンテキストを XNUMX 行に分割します。 -p を意味します。

- 生
生の形式で差分を生成します。

--patch-with-raw
-p --raw の同義語。

-最小限
余分な時間を費やして、可能な限り最小の差分が生成されるようにしてください。

- 忍耐
「忍耐差分」アルゴリズムを使用して差分を生成します。

- ヒストグラム
「ヒストグラム diff」アルゴリズムを使用して差分を生成します。

--diff-algorithm={忍耐|最小限|ヒストグラム|マイヤーズ}
差分アルゴリズムを選択します。 バリエーションは次のとおりです。

デフォルト、マイヤーズ
基本的な貪欲差分アルゴリズム。 現在、これがデフォルトです。

最小限の
余分な時間を費やして、可能な限り最小の差分が生成されるようにしてください。

忍耐
パッチを生成するときは、「忍耐差分」アルゴリズムを使用します。

ヒストグラム
このアルゴリズムは、忍耐アルゴリズムを拡張して、「発生頻度の低い共通のメッセージをサポートする」
要素」。

たとえば、diff.algorithm 変数をデフォルト以外の値に設定した場合、
デフォルトのものを使用したい場合は、 --diff-algorithm=default オプションを使用する必要があります。

--stat[= [、 [、 ]]]
diffstat を生成します。 デフォルトでは、必要なだけのスペースが
ファイル名部分、残りがグラフ部分です。 最大幅のデフォルトは端子です
幅、またはターミナルに接続されていない場合は 80 列で、次のようにオーバーライドできます。 。
ファイル名部分の幅は、別の幅を与えることで制限できます。
カンマの後に。 グラフ部分の幅は、次のように制限できます。
--stat-graph-width= (統計グラフを生成するすべてのコマンドに影響します) または
diff.statGraphWidth= の設定(git format-patch には影響しません)。 を与えることで、
XNUMX番目のパラメータ、出力を最初のものに制限できます。 続く行
...もっとあれば。

これらのパラメータは、--stat-width= を使用して個別に設定することもできます。 、
--stat-name-width= および --stat-count= 。

--numstat
--stat と似ていますが、追加および削除された行数を XNUMX 進数で表示します。
パス名を省略せずに、マシンに優しいものにします。 バイナリファイルの場合、
0 0 と言う代わりに XNUMX を出力します。

--shortstat
変更された合計数を含む --stat 形式の最後の行のみを出力します。
ファイル、および追加および削除された行の数。

--dirstat[= 】
サブディレクトリごとの相対的な変更量の分布を出力します。 の
--dirstat の動作は、コンマ区切りのリストを渡すことでカスタマイズできます。
パラメーター。 デフォルトは diff.dirstat 構成変数によって制御されます。
(参照してください git-config(1))。 次のパラメータが使用可能です。

変更
から削除された行を数えることによって dirstat の数を計算します。
ソース、または宛先に追加されます。 これは純粋なコードの量を無視します
ファイル内の動き。 つまり、ファイル内の行を再配置することはできません。
他の変更と同様にカウントされます。 これはパラメータがない場合のデフォルトの動作です
与えられます。

ライン
通常の行ベースの差分分析を実行して dirstat の数値を計算します。
削除/追加された行数を合計します。 (バイナリ ファイルの場合は、64 バイトのチャンクをカウントします)
代わりに、バイナリ ファイルには行という自然な概念がないためです)。 これはさらに
--dirstat の動作は変更の動作より高価ですが、重要です
他の変更と同様に、ファイル内の行を再配置します。 結果の出力は次のとおりです。
他の --*stat オプションから得られるものと一致します。

ファイル
変更されたファイルの数を数えて dirstat の数を計算します。 それぞれが変わった
dirstat 分析ではファイル数は均等にカウントされます。 これが計算上最も安価です
--dirstat の動作。ファイルの内容をまったく調べる必要がないためです。

累積の
親ディレクトリの子ディレクトリ内の変更もカウントします。 ご了承ください
累積を使用すると、報告されるパーセンテージの合計が 100% を超える場合があります。 の
デフォルト (非累積) の動作は、非累積で指定できます。
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。


整数パラメータはカットオフパーセント (デフォルトでは 3%) を指定します。 ディレクトリ
このパーセンテージ未満の変更は出力に表示されません。

例: 次の例では、変更されたファイルをカウントしますが、変更されたファイルの数が少ないディレクトリは無視されます。
変更されたファイルの総量の 10% を超え、子ディレクトリの数が累積されている
親ディレクトリ内: --dirstat=files,10,cumulative。

- まとめ
作成、名前変更などの拡張ヘッダー情報の要約を出力します。
そしてモードが変わります。

--stat 付きパッチ
-p --stat の同義語。

-z
--raw、--numstat、--name-only、または --name-status が指定されている場合、変更しないでください
パス名を指定し、NUL を出力フィールド ターミネータとして使用します。

このオプションを使用しない場合、各パス名の出力には TAB、LF、二重引用符、および
バックスラッシュ文字はそれぞれ \t、\n、\"、\\ に置き換えられ、パス名も
これらの置換が行われた場合は、二重引用符で囲まれます。

-名前のみ
変更されたファイルの名前のみを表示します。

--名前-ステータス
変更されたファイルの名前とステータスのみを表示します。 --diff-filter の説明を参照してください。
ステータス文字の意味に関するオプション。

--サブモジュール[= 】
サブモジュールの違いをどのように表示するかを指定します。 --submodule または --submodule=log の場合
与えられた、 ログ 形式が使用されます。 この形式では、次のような範囲内のコミットがリストされます。 ギット-
サブモジュール(1) 要約します。 --submodule オプションの省略または指定
--submodule=short、を使用します。 短い フォーマット。 この形式は単に名前を表示するだけです。
範囲の最初と最後でコミットします。 diff.submodule 経由で微調整可能
構成変数。

--色[= 】
色付きの差分を表示します。 --color (つまりなし =) は --color=always と同じです。
always、never、または auto のいずれかです。 color.ui で変更できます。
color.diff 構成設定。

-無着色
色付き差分をオフにします。 これは、構成設定をオーバーライドするために使用できます。 それは
--color=never と同じ。

--word-diff[= 】
を使用して単語の差分を表示します。 変更された単語を区切るために。 デフォルトでは、単語は
空白で区切られています。 以下の --word-diff-regex を参照してください。 のデフォルトは 平野,
次のいずれかでなければなりません:

カラー
色のみを使用して変更された単語を強調表示します。 --color を意味します。

平野
単語を [-removed-] および {+added+} として表示します。 から逃れようとしない
入力に区切り文字が含まれる場合、出力が曖昧になる可能性があります。

磁器
スクリプトの使用を目的とした特別な行ベースの形式を使用します。
追加/削除/未変更の実行は、通常の統一された diff 形式で出力されます。
行頭の +/-/` ` 文字で始まり、次まで
行の終わり。 入力内の改行は、行上のチルダ ~ で表されます。
独自の。

なし
Word diff を再度無効にします。

最初のモードの名前にもかかわらず、変更された部分を強調表示するために色が使用されていることに注意してください。
有効になっている場合、すべてのモードでパーツが表示されます。

--word-diff-regex=
使用空白以外の連続を考慮する代わりに、単語が何であるかを判断する
言葉になる。 また、すでに有効になっていない限り、--word-diff も暗黙的に指定されます。

重複しないすべての一致単語とみなされます。 間の何か
これらの一致は空白とみなされ、検索の目的では無視されます (!)
違い。 |[^[:space:]] を正規表現に追加して、
空白以外のすべての文字と一致することを確認してください。 改行を含む一致は次のとおりです。
改行で黙って切り捨てられます (!)。

たとえば、--word-diff-regex= です。 各文字を単語として扱います。
それに応じて、文字ごとに違いを示します。

正規表現は、diff ドライバーまたは構成オプションを介して設定することもできます。「」を参照してください。
git属性(1)または git-config(1)。 これを明示的に指定すると、あらゆる diff ドライバーがオーバーライドされます。
構成設定。 差分ドライバーは構成設定をオーバーライドします。

--color-words[= 】
--word-diff=color plus と同等 (正規表現が指定された場合)
--word-diff-regex= 。

--no-名前変更なし
構成ファイルでデフォルトで名前変更の検出が指定されている場合でも、名前変更の検出をオフにします。
そう。

- チェック
変更により空白エラーが発生した場合に警告します。 空白エラーとみなされるものは次のとおりです。
core.whitespace 設定によって制御されます。 デフォルトでは、末尾の空白は
(空白のみで構成される行を含む) および空白文字
行の最初のインデント内のタブ文字のすぐ後に続くものは、
空白エラーとみなされます。 問題が見つかった場合は、ゼロ以外のステータスで終了します。 いいえ
--exit-code と互換性があります。

--ws-error-highlight=
で指定された行の空白エラーを強調表示します。 で指定された色で
カラー.差分.ホワイトスペース。 は、古い、新しい、コンテキストのカンマ区切りのリストです。 いつ
このオプションは指定されておらず、新しい行の空白エラーのみが強調表示されます。 例えば
--ws-error-highlight=new,old 削除と追加の両方で空白エラーを強調表示します
線。 all は、old、new、context の省略形として使用できます。

--フルインデックス
最初の数文字の代わりに、画像の前後のブロブ全体を表示します。
パッチ形式の出力を生成するときに、「インデックス」行にオブジェクト名が表示されます。

- バイナリ
--full-index に加えて、git-apply で適用できるバイナリ diff を出力します。

-略語[= ]
diff-raw 形式の出力で完全な 40 バイトの XNUMX 進数のオブジェクト名を表示する代わりに
および diff-tree ヘッダー行には、部分的なプレフィックスのみが表示されます。 これは、
上記の --full-index オプションは、diff-patch の出力形式を制御します。 デフォルトではない
桁数は --abbrev= で指定できます。

-B[ ][/ ]、--break-rewrites[=[ ][/ ]]
完全な書き換え変更を削除と作成のペアにブレークします。 これでXNUMX人分になります
目的:

これは、一連のファイルではなくファイル全体の書き換えに相当する変更を行う方法に影響します。
削除と挿入が混在し、偶然一致するごく少数の行が含まれます。
テキスト的にはコンテキストとして、しかし古いものすべてを XNUMX 回削除し、その後に
すべての新しいものを XNUMX 回挿入します。数値 m は、-B のこの側面を制御します。
オプション (デフォルトは 60%)。 -B/70% は、オリジナルの 30% 未満が必要であることを指定します。
Git がそれを完全な書き換えとみなすため、結果に残ります (つまり、そうでない場合は、
結果として得られるパッチは、コンテキストと混合した一連の削除と挿入になります。
行)。

-M と一緒に使用すると、完全に書き換えられたファイルも、
名前の変更 (通常、-M は消えたファイルのみを名前変更のソースとして考慮します)、
数値 n は、-B オプションのこの側面を制御します (デフォルトは 50%)。 -B20%
追加および削除による変更が、変更の 20% 以上であることを指定します。
ファイルのサイズは、名前変更のソースとして選択される可能性があります。
別のファイル。

-M[ ]、--find-renames[= 】
名前の変更を検出します。 n が指定されている場合、それは類似性インデックスのしきい値です (つまり、
ファイルのサイズと比較した追加/削除の量)。 たとえば、-M90% は
Git は、ファイルの 90% を超える場合、削除/追加のペアを名前変更と見なす必要があります。
変わっていません。 % 記号がない場合、数値は分数として読み取られます。
その前に小数点。 つまり、-M5 は 0.5 になり、-M50% と同じになります。
同様に、-M05 は -M5% と同じです。 検出を正確な名前変更に制限するには、-M100% を使用します。
デフォルトの類似度指数は 50% です。

-C[ ]、--find-copies[= 】
名前変更だけでなくコピーも検出します。 --find-copies-harder も参照してください。 n を指定すると、
-M と同じ意味です。

--find-copys-harder
パフォーマンス上の理由から、デフォルトでは、-C オプションは元のファイルが存在しない場合にのみコピーを検索します。
コピーのは同じ変更セットで変更されました。 このフラグにより​​コマンドが検査されます。
変更されていないファイルをコピー元の候補として選択します。 これは非常に高価です
大規模なプロジェクトでは操作できないため、慎重に使用してください。 複数の -C オプションを指定する
同じ効果があります。

-D、--不可逆削除
削除のプリイメージを省略します。つまり、ヘッダーのみを印刷し、ヘッダーとファイル間の差分は印刷しません。
プリイメージと/dev/null。 結果として得られるパッチは、パッチまたはパッチを適用することを目的としていません。
git 適用; これは、レビューに集中したい人専用です。
変更後の本文。 さらに、出力には明らかに十分な情報が不足しています。
このようなパッチを逆に、たとえ手動であっても適用するため、このオプションの名前が付けられています。

-B と併用すると、削除部分のプリイメージも省略されます。
ペアの削除/作成。

-l
-M および -C オプションには、O(n^2) の処理時間が必要です。ここで、n は、
潜在的な名前変更/コピーのターゲット。 このオプションにより、名前変更/コピー検出が実行されなくなります。
名前変更/コピー対象の数が指定された数を超えた場合。

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
追加 (A)、コピー (C)、削除 (D)、変更 (M)、名前変更されたファイルのみを選択します
(R)、タイプ (つまり、通常のファイル、シンボリックリンク、サブモジュールなど) が変更されます (T)、
マージされていない (U)、不明である (X)、またはペアリングが壊れている (B)。 任意の組み合わせ
のフィルタ文字 (なしを含む) を使用できます。 *(All-or-none)を付加した場合
組み合わせに対して、他のパスに一致するファイルがあればすべてのパスが選択されます
比較の基準。 他の基準に一致するファイルがない場合は何も行われません
選択されています。

-S
指定された文字列の出現数を変更する相違点を探します。
ファイルの追加/削除など。 スクリプターの使用を目的としています。

これは、コードの正確なブロック (構造体など) を探していて、
そのブロックが最初に誕生してからの履歴を知るには、この機能を使用します
プリイメージ内の対象ブロックを繰り返し -S にフィードし、続行します。
ブロックの最初のバージョンを取得するまで。

-G
パッチテキストに一致する追加/削除された行が含まれる相違点を探します。 。

-S の違いを説明するには--pickaxe-regex および -G 、 検討
同じファイル内に次の差分を含むコミット:

+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);

git log -G"regexec\(regexp" ではこのコミットが表示されますが、 git log -S"regexec\(regexp"
--pickaxe-regex はそうではありません (その文字列の出現回数が一致しないため)
変化する)。

ジョブの設定方法については、 つるはし エントリー gitdiffcore(7)詳細については。

--つるはし-すべて
-S または -G が変更を見つけた場合、その変更セット内の変更だけでなく、すべての変更を表示します。
変更を含むファイル。

--ツルハシ-正規表現
治療する一致する拡張 POSIX 正規表現として -S に与えられます。

-O
で指定した順序でパッチを出力します。 、シェル グロブが XNUMX つあります
行ごとのパターン。 これは diff.orderFile 構成変数をオーバーライドします (「 ギット-
設定(1))。 diff.orderFile をキャンセルするには、-O/dev/null を使用します。

-R
XNUMX つの入力を交換します。 つまり、インデックスまたはディスク上のファイルからツリーまでの差異を表示します。
内容。

--相対[= 】
プロジェクトのサブディレクトリから実行する場合、外部の変更を除外するように指示できます。
このオプションを使用すると、ディレクトリとそのディレクトリに対する相対パス名が表示されます。 いないときは
サブディレクトリ (例: ベア リポジトリ内)、作成するサブディレクトリに名前を付けることができます
を与えることによる相対的な出力議論として。

-文章
すべてのファイルをテキストとして扱います。

--ignore-space-at-eol
EOL 時の空白の変更を無視します。

-b、--ignore-space-change
空白の量の変化を無視します。 これは行末の空白を無視し、
XNUMX つ以上の空白文字の他のすべてのシーケンスは同等であると見なされます。

-w、 --ignore-all-space
行を比較するときに空白を無視します。 これは、XNUMX つの行に次のような違いがある場合でも、違いを無視します。
他の行には何もない空白。

--空白行を無視
行がすべて空白の変更は無視してください。

--inter-hunk-context=
指定された行数までの差分ハンク間のコンテキストを表示します。
互いに近いハンクを融合します。

-W、--関数コンテキスト
変化の周囲の機能全体を表示します。

--終了コード
次のようなコードでプログラムを終了させます 差分(1)。 つまり、存在する場合は 1 で終了します。
差があり、0 は差がないことを意味します。

- 静かな
プログラムのすべての出力を無効にします。 --exit-code を意味します。

--ext-diff
外部の差分ヘルパーの実行を許可します。 外部の差分ドライバーを設定すると、
git属性(5)、このオプションを使用する必要があります git-ログ(1)と友達。

--no-ext-diff
外部の差分ドライバーを禁止します。

--textconv、--no-textconv
バイナリの比較時に外部テキスト変換フィルタの実行を許可 (または禁止)
ファイル。 見る git属性詳しくは(5)をご覧ください。 textconv フィルターは通常、
一方向変換の場合、結果の差分は人間が使用するのには適していますが、使用できません。
適用されます。 このため、textconv フィルターはデフォルトで次の場合にのみ有効になります。 ギット-
差分(1)と git-ログ(1) ただし、 git-format-パッチ(1) または diff 配管コマンド。

--ignore-submodules [= ]
diff 生成時にサブモジュールへの変更を無視します。 「なし」のいずれかになります。
「untracked」、「dirty」、または「all」。これがデフォルトです。 「none」を使用すると、
追跡されていないファイルまたは変更されたファイル、またはそのHEADが含まれている場合に変更されたサブモジュール
スーパープロジェクトに記録されたコミットとは異なり、
の設定 無視する 内のオプション git-config(1)または gitモジュール(5)。 「追跡されていない」場合
使用されたサブモジュールは、追跡されていないコンテンツのみが含まれている場合、ダーティとは見なされません(ただし
変更されたコンテンツについては引き続きスキャンされます)。 「ダーティ」を使用すると、
サブモジュールの作業ツリー。スーパープロジェクトに保存されているコミットへの変更のみが行われます。
と表示されます (これは 1.7.0 までの動作でした)。 「all」を使用すると、すべての変更が非表示になります。
サブモジュール。

--src-prefix=
「a /」の代わりに、指定されたソースプレフィックスを表示します。

--dst-prefix=
「b/」の代わりに、指定された宛先プレフィックスを表示します。

--プレフィックスなし
送信元または宛先のプレフィックスを表示しません。

これらの一般的なオプションの詳細については、以下も参照してください。 gitdiffcoreとします。

..。
のパラメーターが指定されている場合、差分を名前付きパスに制限するために使用されます (
ディレクトリ名を指定して、その下にあるすべてのファイルの diff を取得できます)。

RAW 出力 FORMAT


「git-diff-index」、「git-diff-tree」、「git-diff-files」、および「git」からの生の出力形式
diff --raw" は非常に似ています。

これらのコマンドはすべて、XNUMX つのセットを比較します。 比較対象が異なります:

git-diff-index
を比較しますおよびファイルシステム上のファイル。

git-diff-index --cached
を比較しますそしてインデックス。

git-diff-tree [-r] [ ...]
XNUMX つの引数で指定されたツリーを比較します。

git-diff-ファイル [ ...]
インデックスとファイルシステム上のファイルを比較します。

「git-diff-tree」コマンドは、何が行われているかのハッシュを出力することで出力を開始します
比較した。 その後、すべてのコマンドは、変更されたファイルごとに XNUMX つの出力行を出力します。

出力行は次のようにフォーマットされます。

インプレース編集:100644 100644 bcd1234... 0123456... M file0
コピー編集:100644 100644 abcd123... 1234567... C68 ファイル1 ファイル2
rename-edit :100644 100644 abcd123... 1234567... R86 ファイル1 ファイル3
create :000000 100644 0000000... 1234567... ファイル4
削除:100644 000000 1234567... 0000000... D file5
マージされていない :000000 000000 0000000... 0000000... U file6

つまり、左から右へ:

1.コロン。

2.「src」のモード。 作成またはマージ解除の場合は 000000。

3. スペース。

4.「dst」のモード。 削除またはマージ解除の場合は 000000。

5. スペース。

6.「src」のsha1; 作成またはマージ解除の場合は 0{40}。

7. スペース。

8.「dst」の sha1。 0{40} 作成、マージ解除、または「作業ツリーを見る」場合。

9. スペース。

10. ステータス。その後にオプションの「スコア」番号が続きます。

11.タブまたはNULの場合 -z オプションが使用されます。

12.「src」のパス

13.タブまたはNULの場合 -z オプションが使用されます。 C または R にのみ存在します。

14.「dst」のパス。 C または R にのみ存在します。

15. LF または NUL の場合 -z オプションを使用して、レコードを終了します。

考えられるステータス文字は次のとおりです。

・A:ファイルの追加

· C: ファイルを新しいファイルにコピーする

・D:ファイルの削除

· M: ファイルの内容またはモードの変更

・R:ファイルのリネーム

・T:ファイルの種類の変更

· U: ファイルはマージされていません (コミットする前にマージを完了する必要があります)。

· X: "unknown" 変更タイプ (おそらくバグです。報告してください)

ステータス文字 C および R の後には常にスコアが続きます (
移動またはコピーのソースとターゲット間の類似性)。 ステータスレターM
ファイル書き換えのスコア (非類似度のパーセンテージを示す) が続きます。

ファイルがファイルシステム上で新しく、同期していない場合は、すべて 1 として表示されます
インデックス。

例:

:100644 100644 5be4a4.... 000000.... M file.c

-z オプションを使用しない場合、パス名内の TAB、LF、およびバックスラッシュ文字が表されます。
それぞれ \t、\n、\\ となります。

違い FORMAT FOR マージ


「git-diff-tree」、「git-diff-files」、および「git-diff --raw」は取ることができます -c or --cc オプション
マージコミットに対しても差分出力を生成します。 出力は説明されている形式とは異なります
上記の方法で:

1. 親ごとにコロンがあります

2.より多くの「src」モードと「src」sha1があります

3. status は、各親のステータス文字を連結したものです

4. オプションの「スコア」番号なし

5.「dst」のみの単一パス

例:

::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM 説明.c

注意してください 組み合わせた 差分 すべての親から変更されたファイルのみをリストします。

生成 パッチ WITH -P


「git-diff-index」、「git-diff-tree」、または「git-diff-files」が -p オプション「git
diff」を付けずに - 生 オプション、または「-p」オプションを指定した「git log」では、
上記の出力。 代わりにパッチ ファイルを生成します。 作成をカスタマイズできます
このようなパッチは、GIT_EXTERNAL_DIFF および GIT_DIFF_OPTS 環境変数を介して更新されます。

-p オプションで生成されるものは、従来の差分形式とは少し異なります。

1. 次のような「git diff」ヘッダーが先頭にあります。

diff --git a/file1 b/file2

a/ と b/ のファイル名は、名前変更/コピーが関与しない限り同じです。 特に、
作成または削除の場合、/dev/null は a/ または b/ の代わりに使用されます
ファイル名。

名前変更/コピーが関係する場合、file1 と file2 には、ファイルのソース ファイルの名前が表示されます。
それぞれ、rename/copy と rename/copy によって生成されるファイルの名前です。

2. その後に XNUMX つ以上の拡張ヘッダー行が続きます。

古いモード
新しいモード
削除されたファイルモード
新しいファイルモード
からコピー
にコピーする
から名前を変更
に名前を変更します
類似性指数
非類似性指数
索引..

ファイル モードは、ファイル タイプとファイルを含む 6 桁の XNUMX 進数として表示されます。
許可ビット。

拡張ヘッダーのパス名には、a/ および b/ プレフィックスは含まれません。

類似性指数は変更されていない行の割合であり、非類似性指数は
変更された行の割合です。 これは切り捨てられた整数であり、その後に
パーセント記号。 したがって、100% の類似性インデックス値は XNUMX つの等しいファイルに対して予約されます。
一方、100% の非類似性は、古いファイルの行が新しいファイルに組み込まれていないことを意味します。
1。

インデックス行には、変更前と変更後の SHA-1 チェックサムが含まれています。 のは
ファイルモードが変更されない場合は含まれます。 それ以外の場合は、別の行が古いことを示します
そして新モード。

3. パス名内の TAB、LF、二重引用符、バックスラッシュ文字は、\t、\n、
それぞれ \" と \\ です。そのような置換が必要な場合は、全体
パス名は二重引用符で囲みます。

4. 出力内のすべての file1 ファイルはコミット前のファイルを参照し、すべての file2 ファイルはコミット前のファイルを参照します。
ファイルはコミット後のファイルを指します。 それぞれの変更をそれぞれに適用するのは間違いです
順次ファイルします。 たとえば、このパッチは a と b を交換します。

diff --git a/ab/b
から名前を変更
bに改名
diff --git a/bb/a
b から名前を変更
に名前を変更

組み合わせ 違い FORMAT


差分生成コマンドは、-c または --cc オプションを使用して、差分を生成できます。 組み合わせた 差分 を特定いたします。
マージを示しています。 これは、マージを表示するときのデフォルトの形式です git-差分(1)または ギット-
表示する(1)。 また、これらのコマンドのいずれかに -m オプションを指定して、強制的に実行できることにも注意してください。
マージの個々の親との差分の生成。

A 組み合わせた 差分 形式は次のようになります。

diff --combined 説明.c
インデックス fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}

- static void description(char *arg)
-static void description(struct commit *cmit, int last_one)
++static void description(char *arg, int last_one)
{
+ unsigned char sha1[20];
+ 構造体のコミット *cmit;
struct commit_list *リスト;
static int 初期化 = 0;
構造体のコミット名 *n;

+ if (get_sha1(arg, sha1) < 0)
+ 使用法(describe_usage);
+ cmit = lookup_commit_reference(sha1);
+ if (!cmit)
+ 使用法(describe_usage);
+
if (!初期化済み) {
初期化 = 1;
for_each_ref(get_name);

1. 次のような「git diff」ヘッダーが前に付いています ( -c オプションがある
使用済み):

diff --結合ファイル

またはこのように( --cc オプションが使用されます):

差分 --cc ファイル

2. XNUMX つまたは複数の拡張ヘッダー行が続きます (この例では、
XNUMX 人の親):

索引、 ..
モード、 ..
新しいファイルモード
削除済みファイル モード、

モード、 .. 行は、少なくとも XNUMX つの場合にのみ表示されます。 は
他のものとは異なります。 検出されたコンテンツに関する情報を含む拡張ヘッダー
移動 (名前の変更とコピーの検出) は、XNUMX つの差分で動作するように設計されています。
複合差分形式では使用されません。

3. XNUMX 行の from-file/to-file ヘッダーが続きます

- - ファイル
+++ b/ファイル

従来の XNUMX 行のヘッダーに似ています。 統一 diff 形式、/dev/null を使用して
作成または削除されたファイルを通知します。

4.チャンクヘッダーのフォーマットが変更され、人々が誤ってチャンクにフィードするのを防ぎます
パッチ -p1。 マージ コミットの変更を確認するために、結合された diff 形式が作成されました。
適用するためのものではありませんでした。 この変更は、拡張版の変更に似ています。 index
ヘッダ:

@@@ @@@

結合差分のチャンク ヘッダーに (親の数 + 1) 個の @ 文字があります
形式でダウンロードすることができます。

従来とは異なり 統一 diff 形式。XNUMX つのファイル A と B を XNUMX つのファイルで表示します。
- (マイナス — A に表示されますが、B では削除されます)、+ (プラス — A にはありませんが、
B) に追加)、または " " (スペース - 変更なし) プレフィックス、この形式は XNUMX つ以上のファイルを比較します
file1、file2、... を XNUMX つのファイル X と比較し、X が各 fileN とどのように異なるかを示します。 XNUMX列
各 fileN が出力行の先頭に追加され、X の行が
ボーマンは

N 列の - 文字は、その行が fileN に表示されるが、表示されないことを意味します。
結果で。 列 N の + 文字は、行が結果に表示されることを意味します。
fileN にはその行がありません (つまり、行が追加された時点から
その親のビュー)。

上記の出力例では、関数シグネチャが両方のファイルから変更されています (したがって、XNUMX つのファイル
- file1 と file2 の両方からの削除に加えて、追加された XNUMX 行が削除されないことを意味する ++
file1 または file2 のいずれかに表示されます)。 また、他の 1 行は fileXNUMX と同じですが、
file2 には表示されません (そのため + で始まります)。

git diff-tree -c で表示されると、マージ コミットの親とマージ コミットが比較されます。
結果 (つまり、file1..fileN が親)。 git diff-files -c で表示すると、比較します
未解決の 1 つのマージ親と作業ツリー ファイル (つまり、file2 はステージ XNUMX 別名)
「私たちのバージョン」、file2 はステージ 3 別名「彼らのバージョン」です)。

その他 違い 書式


--summary オプションは、新しく追加、削除、名前変更、およびコピーされたファイルを記述します。 --stat
オプション追加 差分統計(1) グラフを出力します。 これらのオプションは他のオプションと組み合わせることができます
-p などのオプションは、人間が使用するためのものです。

名前の変更またはコピーを含む変更を表示する場合、 --stat 出力は
パス名の共通のプレフィックスとサフィックスを組み合わせることで、パス名をコンパクトにします。 たとえば、
386行を修正しながらarch/i86/Makefileをarch/x4/Makefileに移動する変更は、
次のように表示されます。

arch/{i386 => x86}/Makefile | 4 +--

--numstat オプションは、 差分統計(1)情報ですが、機械が使いやすいように設計されています
消費。 --numstat 出力のエントリは次のようになります。

1 2 リードミー
3 1 arch/{i386 => x86}/Makefile

つまり、左から右へ:

1. 追加された行数。

2. タブ;

3. 削除された行の数。

4. タブ;

5. パス名 (おそらく名前変更/コピー情報を含む);

6.改行。

-z 出力オプションが有効な場合、出力は次のようにフォーマットされます。

1 2 リードミー NUL
3 1 NUL アーチ/i386/Makefile NUL アーチ/x86/Makefile NUL

ことは、次のとおりです。

1. 追加された行数。

2. タブ;

3. 削除された行の数。

4. タブ;

5. NUL (名前変更/コピーされた場合のみ存在);

6. プリイメージのパス名。

7. NUL (名前変更/コピーされた場合のみ存在);

8. postimage のパス名 (名前を変更/コピーした場合にのみ存在);

9. NUL。

名前が変更された場合のプリイメージ パスの前の余分な NUL は、スクリプトが
読み取られている現在のレコードが単一パス レコードであるか、名前変更/コピーであるかを示す出力
先読みせずに記録します。 追加・削除された行を読み込んだ後、NULまで読み込む
はパス名を生成しますが、それが NUL の場合、レコードは XNUMX つのパスを示します。


作業ツリーを確認するさまざまな方法

$ git 差分 (1)
$ git diff --cached (2)
$ git diff HEAD (3)

1. 次のコミットのためにまだステージングされていない作業ツリーの変更。
2. インデックスと最後のコミットの間の変更。 あなただったら何をするだろう
「-a」オプションなしで「git commit」を実行します。
3. 最後のコミット以降の作業ツリーの変更。 もしあなたがコミットしていること
「git commit -a」を実行します

任意のコミットとの比較

$ git 差分テスト (1)
$ git diff HEAD -- ./test (2)
$ git diff HEAD^ HEAD (3)

1. 現在のブランチのヒントを使用する代わりに、「テスト」のヒントと比較します
ブランチ。
2. 「テスト」ブランチの先端と比較する代わりに、「テスト」ブランチの先端と比較します。
現在のブランチですが、比較をファイル「test」に制限します。
3. 最後のコミットの前のバージョンと最後のコミットを比較します。

ブランチの比較

$ git diff トピック マスター (1)
$ git diff トピック..マスター (2)
$ git diff トピック...マスター (3)

1. トピックのヒントとマスター ブランチ間の変更。
2. 同上。
3. トピック ブランチが開始されてからマスター ブランチで発生した変更
それをオフにします。

差分出力の制限

$ git diff --diff-filter=MRC (1)
$ git diff --name-status (2)
$ git diff Arch/i386 include/asm-i386 (3)

1. 変更、名前変更、およびコピーのみを表示し、追加または削除は表示しません。
2. 名前と変更の性質のみを表示し、実際の差分出力は表示しません。
3. 差分出力を名前付きサブツリーに制限します。

差分出力の変更

$ git diff --find-copies-harder -B -C (1)
$ git 差分 -R (2)

1. 名前の変更、コピー、および完全な書き換えを見つけるために余分なサイクルを費やします (非常に高価です)。
2. 差分を逆に出力します。

onworks.net サービスを使用してオンラインで git-diff を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。