マンガでわかるGit 12話「本家リポジトリに追従する方法」

「フォークしたはいいけど、本家のリポジトリのコミットが進んじゃって、自分のリポジトリは古いまま。どうやって本家の新しいコミットを取り込んだらいいかわからない」というわかばちゃん。ゼミのメンバーが、本家リポジトリに追従する方法を教えてくれるようです。

本家リポジトリへの追いつき方がわからない!



「クローン元のリポジトリのコミットが進んでしまった!自分のリポジトリに反映されなくて困っている。どうやれば追いつけるの?」

そんなときのやり方を2種類紹介します。

  • A:過去にフォークしたリポジトリを使い、クローン元のリポジトリの更新分を取得する方法

  • B:過去にフォークしたリポジトリを削除し、新たにフォークし直す方法 (初心者向け)


A:過去にフォークしたリポジトリを使い、クローン元のリポジトリの更新分を取得する方法


①クローン元のリポジトリを登録する

1.今はこんな状態です。

本家リポジトリで新しく追加されたコミットを取り込んでおらず、フォークした自分のリポジトリは、古いままで止まっています。

2.本家リポジトリで進んだコミットを取り込むには、本家リポジトリを自分のリポジトリに登録する必要があります。

さっそくやってみましょう。
SourceTree 左メニューの「リモート」を右クリック→「リモートを追加」をクリックします。

3.リモートリポジトリの呼び名と、本家リポジトリのURLを入力します。

リモートリポジトリの呼び名は、自分でわかりやすいものをつけられます。
この例では「upstream」と名付けます。upstreamとは「上流」という意味です。

本家リポジトリのURLというのは、GitHub上でclone or downloadをクリックした時に出てくるURLのことです。
今回使うサンプルリポジトリのURLはhttps://github.com/elmas3/pull-request-practice.gitです。

4.先ほどの画面でOKを押します。

無事、本家リポジトリが追加されました!

②プルする

1.左メニューの「リモート」欄に、「upstream」が追加されていますね。

右クリックして「upstreamからプル」をクリックします。

2.このような画面が表示されます。1→2→3の順にクリックします。

これは「エルマスさんのリポジトリのmasterブランチから、ローカルリポジトリのmasterブランチへプルするよ」という設定です。

3.エルマスさんのリポジトリからローカルのリポジトリにプルできました。

魔王教授のひとことメモ


自分のリポジトリで独自にコミットを積み重ねている場合は、プルするよりも、フェッチしてからマージした方が安全だな。

③プッシュする

1.このままだとローカルリポジトリがリモートリポジトリ(origin)よりも先行している状態です。
同期させるにはプッシュして完了です。

魔王教授のひとことメモ


ちなみに、コマンドでリモートリポジトリを登録する方法は次のとおりだ。

$ git remote add upstream https://github.com/elmas3/pull-request-practice.git

B:過去にフォークしたリポジトリを削除し、新たにフォークし直す方法 (初心者向け)



次に、初心者向けのシンプルな方法を紹介するわ。
思いきって自分のパソコン上のリポジトリと、GitHub上のリポジトリを削除してしまうの。
そして、そのあと新たにフォーク・クローンしなおせば……。


「最新の状態になる!」ってわけだね。

※フォークって何?という方は、書籍「わかばちゃんと学ぶ Git使い方入門」97ページで解説しているので参考にしてね。

①まずパソコン上のリポジトリを削除します

自分のパソコン上の該当のフォルダを直接削除します。
たとえば、sampleという名前のリポジトリならsampleフォルダを丸ごと削除します。

②次にGitHub上のリポジトリを削除します

GitHub上の自分のリポジトリのページを開き[Delete this repository]をクリックします。
本当に削除していいかポップアップで聞かれます。確認としてリポジトリ名の入力を促されます。

(本当に削除して問題ないか、確認してから操作してください)

③本家のリポジトリをフォーク・クローンしなおせば完了です

▼本家リポジトリのGitHubページに行き、[Fork]をクリックします。

▼フォークしてきたリポジトリ(自分のアカウント名/リポジトリ名)からクローンします。


特に独自に開発を進めていない場合は、こっちの方がシンプルね。


なるほど。「頑張って追従しようとしたけどよくわからなくなっちゃった」っていうときはこうやれば解決できるね。

登場人物紹介

マンガ・解説文:湊川あい
絵を描くWebデザイナー。高等学校教諭免許状 “情報科” 取得済。マンガと図解の力で、物事をわかりやすく伝えることが好き。2014年より「マンガでわかるWebデザイン」をインターネット上に公開していたところ、出版社より声がかかる。著書「わかばちゃんと学ぶ Webサイト制作の基本」・わかばちゃんと学ぶ Git使い方入門わかばちゃんと学ぶ Googleアナリティクス〈アクセス解析・Webマーケティング入門〉
Twitter: @llminatoll
Webサイト: マンガでわかるWebデザイン

監修:DQNEO
株式会社メルカリではたらくソフトウェアエンジニア。
アメリカ版メルカリのサーバサイドを開発している。
GitとPHPが大好き。Goも好き。
Twitter: @DQNEO
Github: @DQNEO

※この記事は2018年3月10日時点における実施内容です。時期・環境・バージョンによって、操作が異なることがあります。

Pagetop