2016-12-01 9 views
0

ローカルのマスターブランチとリモートのオリジン/マスターブランチとの違いを表示しようとしています。私はここでいくつかの質問を読んで、次のすべてのオプションを試しました。リモートブランチとローカルブランチを比較するgit diffは何もしません

c:\>git diff master..origin/master 

c:\>git diff origin/master master 

c:\>git diff origin/master..master 

c:\>git diff master origin/master 

c:\>git log -p HEAD..FETCH_HEAD 

無音。何もない。

git fetchgit fetch originの前後で試してみました。明確にするには:私のローカルブランチはリモートとは異なります。 git diffは私の変更を示しています。

答えて

3

私のローカルブランチはリモートと異なります。 git diffは私の変更を示しています。あなたがコミットしたりしても、まだ変更を上演していないため

git diffはおそらく、あなたのローカルブランチを変更が表示されている場合は、リモート異なるではありません。

git diffは、作業コピー(つまり、ディスクに格納されているもの)とステージング領域の違いを示しています。さまざまなフラグは、相違するものを変更します。 git diff --stagedは、あなたが演奏したものとHEADの違いを示しています。

WORKING COPY   STAGING AREA     HEAD 
     <--- git diff --->  <--- git diff --staged ---> 

a cheat sheet which illustrates thisを作成しました。

したがって、git diffが変更を示している場合、それらの変更はステージングもコミットもされていません。 git statusを確認してください。

作業コピーの相違点を確認するには、origin/masterを使用してください。git diff origin/master

+0

私のコードとリモートコードの違いを確認する必要はありませんか? 'git diff origin/master'も何も返しません。 – Marc

+0

@Marcコミットする必要はありません。 'git diff origin/master'を使用してください。なぜそれが変化していないのかについては、私たちに 'git status 'を表示すると、多くのことがクリアされます。 – Schwern

+0

チートシートへの微調整: 'HEAD'は通常、ブランチ名そのものを指しており、コミットを指しています。それは、分離されたHEADのコミットを直接指示するだけです。 – torek

関連する問題