LoginSignup
2
0

More than 3 years have passed since last update.

NITICNoobsによるGit/GitHub講座 第7回 〜fetch/pull〜

Last updated at Posted at 2020-06-07

自己紹介

どうも、isso0424です。又の名をいっそうです。
高専2年生でぷよぐやみんぐを趣味でやっています。
何やってるかは以下のtwitterやGitHub見てもらえればわかると思います。
twitter
GitHub
今回は僕がGit&GitHub解説を進めていきます。

お目次

  • fetch
  • pull

お説明

fetch

fetchが今回最初に説明するコマンドになります。
これはリモートリポジトリから変更を引っ張ってくるコマンドです。

使い方

git fetch [リモートリポジトリ]

これで終わりって言えば終わりなんですけど、具体的な例を見てみましょう。

もともと以下のようなファイルがあったとします。

demo.txt
I'm genius.

yes

そこに、origin/masterにAさんが変更をpushします。
変更内容は以下の通りです。

demo.txt
I'm genius.

no

そして、この状態であなたが

demo.txt
I`m noob.

yes

という変更を加えようとします。

しかしまだ待ってください。
この状態でファイルを変更しようとするとCONFLICTします。
なぜなら、リモートの変更とローカルの変更が矛盾して衝突してしまうからです。
は?CONFLICT?しらねえよって人は今すぐ
第五回を見てきてください。

このときに,前述のfetchを使います。
というわけで編集前に

git fetch origin

を実行します。
これによりリモートの変更がローカルに適用され、以下のようなログが出ます。

remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 223 bytes | 223.00 KiB/s, done.
From URL
  hoge..fuga master    -> origin/master

これはリモートの変更取ってきたぞ!というGit君からの喜びの叫びです。

さて、変更は取ってきただけでは意味がありません
これをローカルに適用するためマージしましょう。

git merge origin/master

origin/master: remoteリポジトリ"origin"のmasterブランチ

これで、リモートの更新にローカルが追いついたため、pushできるようになります。
この状態で前述の変更を行い、pushすることができます。

git push origin master

これで世界に平和が訪れました。

pull

前回と合わせてmerge,fetchについて学んできました。
毎回fetchしてからmergeしても良いのですが段々面倒になってきます。

そんなワガママな希望にも答えてくれるのがgit君です。
gitにはpullというコマンドがあります。

使い方

git pull [リモートリポジトリ名] [リモートリポジトリのブランチ名]

これにより現在作業しているブランチにリモートリポジトリのブランチをマージすることができます。

つまり、pullはfetchとマージを組み合わせたコマンドと考える事ができます。

先程の例を流用します。
先程の例でfetchをしたタイミングで

git pull origin master

を実行します

この時点で、origin/masterがmasterに対してマージされます。
そのため、この時点でファイルの編集に入ることができます。

あとは先程の例のマージ後と同じです。

おまとめ

  • リモートの変更内容を取ってくる時はfetch
  • リモートのあるブランチの最新状態と同期させたい時はpull

次回はGitHubのPullRequest/Issueについて説明します。

おリンク

1回目〜〜インストール編〜〜
2回目〜〜設定編〜〜
3回目〜〜基本技能編〜〜
4回目〜〜平行世界編-1〜〜
5回目〜〜平行世界編-2〜〜
6回目〜〜GitHub編〜〜
7回目〜〜fetch/pull編〜〜 ←イマココ
8回目〜〜Issue/PR編〜〜

執筆者

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0