CodeIQ MAGAZINECodeIQ MAGAZINE

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

2018.03.22 Category:【連載】マンガでわかるGit Tag: ,

  • 81
  • このエントリーをはてなブックマークに追加

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

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



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

そんなときのやり方を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]をクリックします。

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


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


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

次回予告 〜git reflog〜

次回は、間違えて操作してしまったときに便利なコマンド`$ git reflog`について解説します!

マージ・リベース・プルリク。Gitの必須知識の解説は書籍版で!

マンガでわかるGitが書籍化いたしました!

わかばちゃんと学ぶ Git使い方入門
著者:湊川あい/監修:DQNEO
出版社:C&R研究所

  • CHAPTER 1 Gitって何?
  • CHAPTER 2 個人でGitを使ってみよう
  • CHAPTER 3 複数人でGitを使ってみよう
  • CHAPTER 4 実用Git 〜 こんなときはどうすればいい?
  • CHAPTER 5 Gitで広がる世界

CHAPTER 1・2は、Web連載の1〜9話をベースに、さらに詳しい解説・新しい図解を追加しました。

CHAPTER 3・4・5は書籍限定の内容となっています。

  • ステージングエリアやブランチの概念
  • マージ
  • リベース
  • コンフリクト解決
  • プルリク

といった基本の使い方はもちろん、CHAPTER4では、「Gitを使っていて、よくぶつかる状況」と「解決策」をまとめた逆引きTips集を収録しています。

Amazon試し読みはこちらから

ほかにもある!わかばちゃんシリーズ

わかばちゃんと学ぶ Webサイト制作の基本

わかばちゃんと学ぶ Googleアナリティクス〈アクセス解析・Webマーケティング入門〉

わかばちゃんが登場するWeb連載マンガ

登場人物紹介

Gitに関するクイズ出題中!

Gitコマンドの選択式クイズが出題中です。正解すると、このマンガのおまけの1コマが見られます。ぜひチャレンジしてみてくださいね。

マンガ・解説文:湊川あい
絵を描くWebデザイナー。高等学校教諭免許状 “情報科” 取得済。マンガと図解の力で、物事をわかりやすく伝えることが好き。2014年より「マンガでわかるWebデザイン」をインターネット上に公開していたところ、出版社より声がかかる。初の著書「わかばちゃんと学ぶ Webサイト制作の基本」が発売中

Twitter: @llminatoll
Webサイト: マンガでわかるWebデザイン

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

Twitter: @DQNEO
Github: @DQNEO

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

  • 81
  • このエントリーをはてなブックマークに追加

■関連記事

マンガでわかるGit 11話「強制プッシュするとどうなるの?プッシュできないときはどうすべき?」... 強制プッシュするとどうなるの?プッシュできないときはどうすべき? ☆ 前回のお話はこちら:「masterブランチを守れ!~危険な強制プッシュ~」 さっきの状態を再現してみたわ。 この状態では何も問題ないわね。 ここでわかばちゃんは、masterブランチの内容を修正しようとして、...
マンガでわかるGit 10話「masterブランチを守れ!〜危険な強制プッシュ〜」... masterブランチを守れ! 〜危険な強制プッシュ〜 そ、それはだな……ごにょごにょ わかばちゃん、私がリモートリポジトリのmasterブランチをプロテクトしておいたわ。これで、たとえ強制プッシュしてしまってもエラーで失敗するだけよ。 思う存分Gitしてね。 あ、ありがとうござい...
マンガでわかるGit 9話「pullの正体はfetch+mergeだった?」... pullの正体はfetch+mergeだった? ※前回のお話:マンガでわかるGit 第8話「GitHubを使ってみよう push・pull編」 今までは、わかばちゃんは単純にこういうイメージでpush・pullをしていましたが… ↓ 実はこういう構造! リモートブランチ リモー...
マンガでわかるGit 第8話「GitHubを使ってみよう push・pull編」... GitHubを使ってみよう push・pull編 この記事は マンガでわかるGit 第7話「GitHubを使ってみよう」の続きです。 前回の状態 マンガでわかるGit 第7話「GitHubを使ってみよう」 の演習を終えたら、このような状態になっていると思います。 SourceTree...
マンガでわかるGit 第7話「GitHubを使ってみよう」... GitHubを使ってみよう そもそもソーシャルコーディングとは ソーシャルコーディングっていうのは、「ソースコードをクラウド上で共有して、他のユーザーとコラボレーションしながら開発をしていく」ということよ。 複数人で開発できる仕組みについては マンガでわかるGit 6話 「集中型...
マンガでわかるGit 第6話「集中型と分散型、何がどう違うの?」... 集中型と分散型って、何がどう違うの? バージョン管理システムは大きく分けて2種類 集中型バージョン管理システム CVS・Subversionなど 分散型バージョン管理システム Git・Mercurialなど 集中型は「ひとつのリポジトリに接続してみんなで使う」タイプ。 分散...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートへ