【Eclipse×GitHub】図で解説するGitHubバージョン管理方法
①: ~ 概要編 ~
②: ~ Git操作用語編(初級) ~
③: ~ Git操作用語編(中級) ~ ← 今ここ
④: ~ Eclipse操作編(事前準備) ~
⑤: ~ Eclipse操作編(Git操作実演) ~
前回はGitを操作していくうえで最低限知っておくべき用語について説明しました。
今回はもう少し踏み込んで知っておくと便利な操作用語について説明していきたいと思います。
ここでは新たに2つの操作「フェッチ(Fetch)」と「マージ(Merge)」の説明をします。
ですが、これらを理解していくにはまず「リモート追跡ブランチ」の概念を理解しておく必要があります。
「リモート追跡ブランチ」とは何なのか?
ローカルリポジトリの内部は、実は2層のブランチ構造となっています。
上位層のブランチを「リモート追跡ブランチ」、下位層のブランチを「ローカルブランチ」と呼びます。
<リモート追跡ブランチ>
- ローカルリポジトリ内の上位層に存在するブランチ
- Eclipse等のツールでは「origin/master」と表記されることが多い
- リモートリポジトリと紐づいていており、リモートリポジトリの変更履歴の取り込み先の役割を果たす。
- リモートリポジトリから取り込んだ変更履歴をローカルリポジトリへ渡す橋渡し的な存在。
<ローカルブランチ>
- ローカルリポジトリ内の下位層に存在するブランチ
- Eclipse等のツールでは「master」と表記されることが多い
- このブランチが作業ツリーと直接紐づいている
ブランチに表記されている「origin」「master」てなに?
Eclipse等のツールを用いているとよく「origin」や「master」という言葉が出てきます。
それぞれ名称を表していて、
・origin:リモートリポジトリ名称
・master:ブランチ名称
となります。
リモート追跡ブランチの場合、一般的に「origin/”ブランチ名”」と表記されます。
例えば、リモートリポジトリの「master」ブランチを指す場合は「origin/master」と表記されます。
ちなみに、リモートリポジトリの名称の「origin」は表記を変更することも可能です。
ローカルブランチの場合は単に「master」とだけ表記されます。
知っておくと便利な操作用語
リモート追跡ブランチの概要がわかったところで、さっそく「フェッチ(Fetch)」と「マージ(Merge)」の動作を理解していきましょう!
フェッチ (Fetch)
- 他人が反映したリモートリポジトリの変更履歴を、自分のリモート追跡ブランチ“のみ”に取り込む。
- ローカルブランチは不変のため、この操作で作業ツリーに影響が出ることはない。
- リモートリポジトリへ接続するため、オンライン環境が必要。
マージ (Merge)
- フェッチ操作によって取り込まれたリモート追跡ブランチの変更履歴をローカルブランチへ取り込む。
- オフライン環境でも操作可能。
「コミット」「プッシュ」「プル」の動作を再確認!
前回出てきた「コミット(Commit)」、「プッシュ(Push)」、「プル(Pull)」をしたとき、「リモート追跡ブランチ」と「ローカルブランチ」がどう変化するのか、気になった方もいると思います。
なので「リモート追跡ブランチ」と「ローカルブランチ」の概念を取り入れて、前回出てきた「コミット(Commit)」、「プッシュ(Push)」、「プル(Pull)」の動作を再度確認していきましょう!
コミット (Commit)
- ステージされたファイルをローカルブランチのみに反映する。
- リモート追跡ブランチは反映されない。
プッシュ (Push)
- リモートリポジトリだけでなく、リモート追跡ブランチにも変更履歴を反映している。
プル (Pull)
- リモート追跡ブランチ、ローカルブランチの両方に同じ変更履歴が取り込まれる。
- プル操作は「フェッチ + マージ」と同じ。
まとめ
- ローカルリポジトリ内のブランチ構造
ブランチ種類 | 説明 |
---|---|
リモート追跡ブランチ | リモートリポジトリと紐づいている。 |
ローカルブランチ | 作業ツリーと紐づいている。 |
- Git操作説明(中級)
Git操作 | 説明 |
---|---|
フェッチ (Fetch) | リモートリポジトリの変更履歴をリモート追跡ブランチへ反映する。 ローカルブランチは不変である。 |
マージ (Merge) | リモート追跡ブランチの変更履歴をローカルブランチへ反映する。 |
プル (Pull) | 「フェッチ+マージ」と同じ動作。 |
コメント