ローカルリポジトリが最新であるかどうかを知りたいです(そうでない場合は、理想的には、変更を確認したいと思います)。
git fetch
またはgit pull
を実行せずにこれを確認するにはどうすればよいですか?
git fetch --dry-run
マニュアル(git help fetch
)言う:
--dry-run
Show what would be done, without making any changes.
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) <-------
git status -uno
を使用して、ローカルブランチがOriginブランチで最新かどうかを確認できます。
そうではありません-しかし、私はどのように_git fetch
は、ローカルブランチを変更しないので痛いでしょう。
次の2つのコマンドを発行する必要があります。
ローカルリポジトリをリモートサーバー上のファイルと比較する前に、git fetch
を実行する必要があります。
このコマンドは、リモート追跡ブランチのみを更新し、git merge
またはgit pull
を呼び出すまでワークツリーに影響を与えません。
取得したローカルブランチとリモートトラッキングブランチの違いを確認するには、ここで説明するように git diffまたはgit cherryを使用できます。
別の代替方法は、git show-branch remote/branch
を使用してリモートブランチのステータスを表示し、git show-branch *branch
を参照して比較として使用して、すべてのリモートとリポジトリのブランチを表示することです!詳細については、この回答をご覧ください https://stackoverflow.com/a/3278427/2711378
不可能だよ。リモートリポジトリに移動して「最新」の意味を確認することなく、リポジトリが「最新」であるかどうかをどのように知ることができますか?
最初に使用するgit remote update
、リモート参照を最新の状態にします。その後、次のようないくつかのことのいずれかを実行できます。
git status -uno
は、追跡しているブランチが前方にあるか、後方にあるか、分岐したかを示します。何も言わない場合、ローカルとリモートは同じです。git show-branch *master
は、名前が「master」で終わるすべてのブランチ(たとえば、masterおよびOrigin/master)のコミットを表示します。Git remote updateで-vを使用すると(git remote -v update)、どのブランチが更新されたかを確認できるため、これ以上コマンドを実行する必要はありません。