【Git入門】git fechとgit pullについて
こんにちは
今回はgithubからgithubデスクトップにpullするときにfetchとpullの違いが曖昧だったため、この2つについて自分なりにまとめた備忘録です。
・originとmasterブランチとorigin/masterブランチ
・git fetch
・git pull
・git hubデスクトップ
■originとmasterブランチとorigin/masterブランチ
・origin:リモートリポジトリの場所(URL)
・masterブランチ:最初のコミットを行うとできるブランチ。リモートとローカルにある
・origin/masterブランチ:ローカルにある、リモートのmasterブランチを追跡するリモート追跡ブランチ
origin (URL)の内容は以下のコマンドで確認できます。
$git remote -v
origin https://github.com/ユーザ名/アプリ名.git (fetch)
origin https://github.com/ユーザ名/アプリ名.git (push)
このようなイメージです。
originとmsterの違いは以下の記事が大変参考になりました
Git - originとmasterとは何か(初心者向け) - Qiita
■git fetch
リモートの変更をローカルのorigin/masterブランチに反映させます。この時点ではmasterブランチの内容は変更しません。
使用例)originのmasterブランチの内容を取得
$git fetch origin master
■git pull
簡単に言うと、fetch+mergeです。
リモートの変更をローカルのorigin/masterブランチに反映させ、origin/masterの内容をローカルのmasterブランチにmergeします。
このようなイメージになります。
■githubデスクトップについて
自分がAブランチで作業をしていて、他のメンバーがリモートリポジトリに変更を加えoriginのmasterブランチにmergeしたとします。
そのリモートの変更情報をローカルに取ってくる時の流れとしては、以下のようになると思います。
git hubデスクトップ上で
①自分のAブランチの作業をcommit/pushしておく
②ローカルをmasterブランチに切り替え、リモート(origin)のmasterブランチをgit fetchする
③リモートのマスターブランチをpullする
①自分のAブランチの作業をcommit/pushしておくまずコミットします。
作業ブランチAのコミットをpushします。
コマンドの場合)$git push origin A
②ローカルをmasterブランチに切り替え、リモートのmasterブランチをgit fetchする(fetchしただけだとorigin/masterが更新され、masterは更新されないためgithubデスクトップのmasterブランチのコードに変更はありません)コマンドの場合)$git checkout master (masterブランチに移動します)
$git fetch origin master
(origin/masterの内容に変更があった場合)
③リモートのマスターブランチをpullするコマンドの場合)$git pull origin master
githubデスクトップを利用するとこのようなイメージになります。
※コマンドは下記のサイトを大変参考にさせていただきました
Git超絶まとめ - Qiita
このような流れになります。
何か間違いございましたらご指摘ください🙇♀️