[解決済み] 異なる2つのブランチのファイルを比較する方法
質問
あるブランチで正常に動作し、別のブランチでは壊れているスクリプトがあります。2つのバージョンを並べて見て、どこが違うのかを確認したいのですが。これを実行する方法はありますか?
はっきり言って 比較ツールを探しているわけではないのですが(私が使っているのは ビヨンドコンペア ). マスターバージョンと現在のブランチバージョンを比較して、何が変わったのかを確認できる Git の diff コマンドを探しているのです。マージの最中でも何でもありません。ただ、次のようなことを言いたいだけです。
git diff mybranch/myfile.cs master/myfile.cs
解決方法は?
git diff
は、2つのコミットの違いを表示することができます。
git diff mybranch master -- myfile.cs
あるいは、同等に
git diff mybranch..master -- myfile.cs
ファイルへの相対パスを指定する必要があることに注意してください。つまり、ファイルが src ディレクトリにある場合、次のように記述します。
src/myfile.cs
ではなく
myfile.cs
.
後者の構文を用いると、どちらか一方が
HEAD
を省略することができる(例.
master..
比較する
master
から
HEAD
).
こちらもどうぞ
mybranch...master
から
git diff
ドキュメンテーション
):
このフォームは、2つ目までを含むブランチの変更を表示するためのものです。
<commit>
の共通の祖先から始まり<commit>
.git diff A...B
は、次のように等価です。git diff $(git-merge-base A B) B
.
つまり、これは、以下のような変更の差分を与える。
master
と分岐しているため
mybranch
(でのそれ以降の新たな変更はありません)。
mybranch
).
いずれの場合も
--
のセパレータは、コマンドライン・フラグの終了を示します。引数がコミットを指しているのかファイルを指しているのかGitが混乱しない限り、これはオプションです。しかし、これを含めることは悪い習慣ではありません。参照
に対する Dietrich Epp の回答です。
Git チェックアウトのダブルダッシュの意味
をご覧ください。
に同じ引数を渡すことができます。
git difftool
が設定されている場合。
関連
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] コミットに含まれるすべてのファイルを一覧表示するにはどうすればよいですか?
-
[解決済み] 2つのコミット間で変更されたファイル名のみをリストアップする方法
-
[解決済み] 2つのリビジョン間でどのファイルが変更されたかを表示する
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み] git rebase fatal: 必要なリビジョンは1つです。
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] git diff の出力を自分の好みの diff ツール/ビューアで表示するにはどうすればよいですか?
-
[解決済み】Gitチェックアウトのダブルダッシュの意味
-
[解決済み] 現在の作業コピーと別のブランチのコミット済みコピーを差分する
-
[解決済み] Gitです。異なるブランチにある2つのファイルの差分を取るには?