私は最近、SVNからgitに移動し、gitの使い方を学びました。リポジトリの2つのブランチ間で変更されたファイルを見つける必要があります。次のコマンドを使用します。
git diff branch_2..branch_1
次のエラーが発生します。
fatal: ambiguous argument 'branch_2..branch_1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
gitブランチは次のo/pを提供します:
git branch -a
* branch_1
master/Origin
remotes/Origin/HEAD -> Origin/master
remotes/Origin/branch_2
remotes/Origin/branch_1
あなたが単にやっている場合:
git diff branch2..branch1
これは機能しません。gitブランチリストにリストされているように、「リモート」は「Origin」として指定されています。これが実際に意味することは、リモートにそれらのブランチがあることですが、それらは実際にはローカルにチェックアウトされていません。
したがって、ここには2つのオプションがあります。これらを試して、どうなるか教えてください。
提供されたブランチリストに基づく:
Originを使用して比較/
git diff Origin/branch2..branch1
これらのブランチをローカルでチェックアウトして差分を実行し、ワークステーションでそれらを処理する場合。さらに、この形式でdiffをサポートします:
git diff branch2..branch1
あなたがしなければならないことは、実際にそれらのブランチをチェックアウトして、それらをリモートからローカルブランチとして設定することです。単にこれを行う:
git checkout branch2
その後、あなたは行うことができます
git diff branch2..branch1
時々 shallow git repo を取得し、
git clone --depth 1 <repo-url>
git diff
を使用すると、fatal: ambiguous argument error
で失敗します。
fatal: ambiguous argument [...]: unknown revision or path not in the working tree.
次に、ローカルで参照できるようにする必要があります。浅いgitリポジトリを浅いgitリポジトリから完全な(浅くない)リポジトリに変換します。 git deep fetch および git unshallow を参照してください。
次に、それはgit diff
ブランチにできるはずです:
git diff branch1
前述の例では、branch1
をアクティブな作業ブランチと比較しています。
HTH