私はgitには新しく、svnに似た集中ワークフローを使用しています。私は定期的に私の地位が中央のレポと比較されているかを知りたいです。たとえば、次のコマンドを実行した場合...集中ワークフローを使用したGit
... git pullは "already up to date"と言っています。どうしてgitがレポートの変更をプルするのではないのですか?それが正しい動作ならば、私のローカルがリモートと同期していないことを知る方法はありますか?
私はgitには新しく、svnに似た集中ワークフローを使用しています。私は定期的に私の地位が中央のレポと比較されているかを知りたいです。たとえば、次のコマンドを実行した場合...集中ワークフローを使用したGit
... git pullは "already up to date"と言っています。どうしてgitがレポートの変更をプルするのではないのですか?それが正しい動作ならば、私のローカルがリモートと同期していないことを知る方法はありますか?
git pull
リモートリポジトリで行われた変更はすべてsvn update
に相当します。しかし、あなたの側に遠隔地にない変更があるかどうかは言及されません。 git fetch
を実行して、の更新情報をのワークスペースに適用せずに取得することもできます。 gitの最近のバージョンでは
(例えば1.7.2.3ここ)git status
は例えば、あなたがこれを見るのを助けるためにいくつかの情報を印刷します:私はgit fetch
を行なったし、待っているの変化があることを意味した後
# On branch master
# Your branch is behind 'origin/master' by 20 commits, and can be fast-forwarded.
これが表示されます私のワークスペースに行くために私はそれらを引くと作り、ローカルに変更をコミットする場合はこれとは対照的に
、(git pull
を行うことによって適用される)、git status
は私に語った:
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
つまり、リモートにプッシュできるローカル変更があります。私は次にそれらをリストすることができるgit log origin/master..
"git pull"コマンドは、リモートリポジトリからの変更をプルするだけでローカルブランチにマージします。
違いを調べるには、git br -aを使用してリモートブランチを一覧表示してから、ローカルブランチが追跡しているリモートブランチをgit diffする必要があります。
git fetch
を使用して、ローカルリポジトリのリモートブランチを更新してください。ダウンロードしたものがあるかどうかを示すダイアログが表示され、git diff
またはgit log
を使用して比較します。
ありがとう、私は今それを得る。解決策として 'git log origin/master ..'に加えて、リモートブランチの 'git diff'へのJasonからの提案にも、ローカルの変更とリモートの変更が示されました。 – Ravi
そうです、 'git log -p ....'はローカル変更が1つだけの場合も同じことを示します。複数のローカル変更がある場合、 'git log'は個々にdiffを表示し、' git diff'は全てのdiffを表示します。 – araqnid