git

【git】forkしたリポジトリに本家リポジトリの更新を反映する


チーム開発後に、共同で更新してきた本家のリポジトリをメンバー個人のgitに移行して管理する場合に、github上でfork処理を行いますが、forkしたリポジトリに本家リポジトリの更新内容を同期して反映する手順を解説します。
イメージとしては以下図のようになります。ここでは、fork元の本家リポジトリをupstream-test、fork先のリポジトリをdownstream-test、アプリケーションをtest_appとします。

実装手順

以下の手順で実装していきます。
❶ 本家リポジトリからforkする
❷ forkしたリモートリポジトリをローカルへcloneする
❸ ローカルリポジトリ上でリモートリポジトリに本家リポジトリを指定する
❹ 本家リポジトリからローカルリポジトリへpullして反映する
❺ ローカルリポジトリからリモートへpushして反映する
❻ローカルでの更新がリモートへ反映されるかテスト

❶ 本家リポジトリからforkする

githubのアプリケーション上で画面右上のForkを選択します。

❷ forkしたリモートリポジトリをローカルへcloneする

downstream-testのgithub上で、CodeからアプリケーションのURLをコピーします。

$ git clone downstream-testのURL

❸ ローカルリポジトリ上でリモートリポジトリに本家リポジトリを指定する

originのmasterと区別するために名前をupstreamにします。

$ git remote add upstream upstream-testのURL

$ git remote -v
origin	https://github.com/downstream-test/test_app.git (fetch)
origin	https://github.com/downstream-test/test_app.git (push)
upstream	https://github.com/upstream-test/test_app.git (fetch)
upstream	https://github.com/upstream-test/test_app.git (push)

上記のようにupstreamに本家リポジトリが指定されました。

❹ 本家リポジトリからローカルリポジトリへpullして反映する

$ git pull upstream master

❺ ローカルリポジトリからリモートへpushして反映する

fork先のリモートリポジトリへ反映します。

$ git push origin master

❻ローカルでの更新がリモートへ反映されるかテスト

ローカルリポジトリ(masterブランチ)で新規ファイル作成します。ターミナル上でコミットしてリモートへpushし、github上で反映されていればOKです。

$ git add tttest


$ git commit -m "tttest"
[master xxxxxxx] tttest
 2 files changed, 2 insertions(+)
 create mode 160000 test_app
 create mode 100644 tttest

$ git push origin master

CATEGORIES & TAGS

git,

Author:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

むるし

インフラ系エンジニア。備忘録で色々書いていきます。
現在テックキャンプでフルコミット中。

年収訴求

CodeCamp

縛りなしWiFi

%d人のブロガーが「いいね」をつけました。