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
他のコマンドについても試してみたい。とりあえず、
参考サイトを確認しないかもなので、メモっておく。
[参考サイト]