web-dev-qa-db-ja.com

Git:ローカルリポジトリが最新かどうかを確認する方法は?

ローカルリポジトリが最新であるかどうかを知りたいです(そうでない場合は、理想的には、変更を確認したいと思います)。

git fetchまたはgit pullを実行せずにこれを確認するにはどうすればよいですか?

45
Misha Moroshko

git fetch --dry-runマニュアル(git help fetch)言う:

--dry-run
Show what would be done, without making any changes.
63
Philip Oakley
git remote show Origin

結果:

HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git Push':
    master pushes to master (local out of date) <-------
14
jim smith

git status -unoを使用して、ローカルブランチがOriginブランチで最新かどうかを確認できます。

8
flowdee

そうではありません-しかし、私はどのように_git fetchは、ローカルブランチを変更しないので痛いでしょう。

5

次の2つのコマンドを発行する必要があります。

  1. git fetch Origin
  2. git status
3
user3695833

ローカルリポジトリをリモートサーバー上のファイルと比較する前に、git fetchを実行する必要があります。

このコマンドは、リモート追跡ブランチのみを更新し、git mergeまたはgit pullを呼び出すまでワークツリーに影響を与えません。

取得したローカルブランチとリモートトラッキングブランチの違いを確認するには、ここで説明するように git diffまたはgit cherryを使用できます。

2
braitsch

別の代替方法は、git show-branch remote/branchを使用してリモートブランチのステータスを表示し、git show-branch *branchを参照して比較として使用して、すべてのリモートとリポジトリのブランチを表示することです!詳細については、この回答をご覧ください https://stackoverflow.com/a/3278427/2711378

2
Amanuel Nega

不可能だよ。リモートリポジトリに移動して「最新」の意味を確認することなく、リポジトリが「最新」であるかどうかをどのように知ることができますか?

1
Jörg W Mittag

最初に使用するgit remote update、リモート参照を最新の状態にします。その後、次のようないくつかのことのいずれかを実行できます。

  1. git status -unoは、追跡しているブランチが前方にあるか、後方にあるか、分岐したかを示します。何も言わない場合、ローカルとリモートは同じです。
  2. git show-branch *masterは、名前が「master」で終わるすべてのブランチ(たとえば、masterおよびOrigin/master)のコミットを表示します。

Git remote updateで-vを使用すると(git remote -v update)、どのブランチが更新されたかを確認できるため、これ以上コマンドを実行する必要はありません。

0
Piyush Agarwal