haiju's 開発メモ

開発に必要な情報を自分用にメモ

gitのリモートリポジトリの更新を確認する

久しくgitコマンドを触らなくなったのでおさらいを兼ねて

備忘録に記録。

[手順]

1. git fetch 後にdiff を取る

% git fetch origin

% git diff origin/develop

2. git ls-remote コマンドを使用する。

 リモートリポジトリの最新コミットID(HEAD)とローカルの最新コミット

 ID(HEAD)を比較しその2つが異なっていれば差分があると判断できる。

 更にリモートのコミットIDが過去に存在しないものであれば、ローカルの

 リポジトリが古い(マージしていないコミットがリモートに存在する)こと

 になる(らしい)。

% git ls-remote origin HEAD

78ddd44eb3b76017a55014f27d9f846054dfa52b HEAD

% git log -l HEAD       # or develop

commit 8741c1a1fd81e0e3620e7054f3731ad2338f25fa

% git log -l origin/HEAD      # or origin/develop

commit 8741c1a1fd81e0e3620e7054f3731ad2338f25fa

3. git remote show コマンドを使用する。

 実行結果の最終行に(local out of data)と表示されていれば

 ローカルの方が古いことになる(ブランチが複数ある場合は

 複数行表示される)

 ※ただし、リモートブランチと同名のブランチがローカルにも

  存在する場合のみ表示される。

  また、リモートブランチと異なる名前のブランチは upstream / 

  tracking branch を設定しても表示されない。

  以下はリンク先のコピペ(そのままやないかいw)。

% git remote show origin

* remote origin
Fetch URL: git://github.com/Shougo/unite.vim.git
Push URL: git://github.com/Shougo/unite.vim.git
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)

いくつか方法があるみたいだけど、とりあえず自分は

1の方法で確認した。

リモートの差分を更新したい場合は、以下コマンドで。

% git merge origin/develop

他のコマンドについても試してみたい。とりあえず、

参考サイトを確認しないかもなので、メモっておく。

[参考サイト]

qiita.com