1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GitHub】フォークしたリポジトリを最新に更新する

Last updated at Posted at 2020-03-05

チーム開発で最初につまずいたので備忘録として・・・

フォークとは

他ユーザーの公開リポジトリをコピーして自分のGitHub上に新しくリポジトリを作成する事。
自分のリポジトリなので自由にプッシュ・マージなどが行える、またこのコピーしたリポジトリから親(フォーク元)リポジトリへプルリクエストを送る事ができる為、

  1. フォークしたリポジトリで作業を行う
  2. プルリクエストを親リポジトリへ送る
  3. 親リポジトリにてmasterブランチにマージ
    という流れで共同開発ができる。

フォークしたリポジトリを最新に更新する方法

じゃあその更新された親リポジトリをどうやって自分のリポジトリに同期するのか。
今回はターミナル上の操作で更新を行う。
◆作業の流れ

  1. 親リポジトリの更新を取得
  2. 取得した更新をローカルブランチに反映
  3. 更新したローカルブランチをリモートリポジトリにプッシュ

1. git fetch
他のリポジトリからデータを取得するコマンド。
まずはこれで親リポジトリのデータを取得するので、
親リポジトリの名前をgit remoteで確認する。(-v オプションでURLも出せる)

$ git remote
origin
upstream

origin→フォークしたリモートリポジトリ名
upstream→親(フォーク元)のリモートリポジトリ名
フォークした場合親リポジトリ名のデフォルトはupstreamらしい。

git fetch upstream

2. git checkout
現在のブランチを切り替えるコマンド。
フォークしているローカルのブランチをmasterに切り替える。

$ git checkout master

3. git merge
現在のブランチへ他のブランチの更新を取り込むコマンド。
ローカルのmasterブランチに親リポジトリの更新を取り込む。

$ git merge upstream/master

4. git push
ローカルブランチの更新をリモートリポジトリに送るコマンド。
最新の状態にしたローカルブランチをフォークしたリモートリポジトリへ送る。

$ git push origin master

最後に

今回初投稿になりますが、今後も気になった事は備忘録としてまとめていきたいと思います。

ちなみにgit fetch upstreamの中身はローカルブランチのupstream/masterに更新データを保存していて、git merge upstream/masterでそのブランチを指定してmasterにマージしてるで合ってるはず・・・

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?