fetchコマンドは他のリポジトリのデータを取得するものだ。
このページではfetchコマンドの使い方について入門者の方向けに解説した。参考にしていただけれと思う。
Gitのfetchコマンド
このコマンドは、リモート・リポジトリなど他のリポジトリのデータを取得するものだ。
このコマンドが実行されると、ローカルからリモート・リポジトリの最新の情報を見ることができるようにもなる。また、必要に応じてリモート・リポジトリとマージすることもできるようになる。
ただし、コマンドは他のリポジトリのデータを取得するだけで、ローカルで作業しているファイルを書き換えたりマージしたりするようなことはない。
コマンドの基本は簡単だ。
git fetch [リポジトリ]
では、実際の使い方を見てみよう。
リモート・リポジトリをfetchする場合
例えば、リモート・リポジトリをクローンしたローカルのリポジトリがあったとする。クローンした時点では、リモートと同じ内容のものがそっくりローカルにコピーされる。次の図は、V0から始まったリモートのリポジトリがV1の時点でクローンされた時の様子を表している。
この時点までの変更の記録はローカルもリモートも同じなので、ローカルの変更履歴がリモートの変更履歴でもある。
しかし、ローカルでV1に変更を加えたV2が記録され、続いてリモートでもV1が変更されたV3が記録されるとどうなるだろう。クローンされた後は、別々に変更の記録が独立して行われることになる。
ローカルで変更の記録を確認(git log)すると、
ローカルにはV3がないことが分かる。つまりローカルからリモートは見えない。
それで、fetchコマンドの出番だ。
リモートのリポジトリの名前は、クローンした時点で自動的にoriginという名前になっている。それで、originという名前を指定して、
$ git fetch origin
と、コマンドを叩けばOKだ。
コマンドが実行されると、ローカルにリモート追跡のためのブランチが作られる。このブランチの名前を使ってリモートにどんな変更が記録されているかを見ることができる。
では、ローカルでリモートとローカルの変更の履歴を見てみよう。
リモートの変更履歴はリモート追跡のためのブランチの名前origin/masterという名前を指定して、
$ git log origin/master
と、コマンドを叩けばOKだ。
今度は、V3の変更履歴がある。
まとめ
このページではGitのfetchコマンドの使い方についてまとめてご紹介した。
リモート・リポジトリの状態を把握するために、定期的にfetchコマンドを実行しておこう。
コメント