184
Help us understand the problem. What are the problem?

posted at

updated at

Organization

fork元のリポジトリへの変更をforkしたリポジトリに反映する

20190429追記
わかりにくい表現を修正しました。
内容の変更はしていません。
追記ここまで

forkしたリポジトリのブランチを、fork元のリポジトリのブランチに追従させる、ということをGitコマンドで実行します。
このコマンドをJenkins等で実行することもできます。

※ここではGit初心者に役立つ「よく使うコマンド集」②で紹介したコマンドを使用しています。

0.今回の環境

fork元のリポジトリ名:fork_master
追従したいブランチ:develop
forkしたリポジトリのリモートリポジトリ名:origin

1.fork元のリポジトリがリモートリポジトリとして存在しなければ、リモートリポジトリとして追加する

1.リモートリポジトリの一覧を表示して確認します。

$ git remote

origin    # forkしたリポジトリのみリモートリポジトリとして登録済み

2.fork元のリポジトリを「fork_master」という名前で追加します。

$ git remote add fork_master <url> 

3.追加されていることを確認します。

$ git remote

origin
fork_master  

2.fetch

1.fork元のリポジトリをfetchします。

$ git fetch fork_master  

3.fork元のリポジトリの追従したいブランチのローカルブランチを作成する

1.「fork_master_develop」という名前でローカルブランチを作成します。

$ git checkout -b fork_master_develop fork_master/develop

2.ブランチの一覧を表示して確かめてみます。

$ git branch -a

* fork_master_develop
...
...
...

4.追従するブランチを最新化

1.forkしたリポジトリのブランチ(fork元の変更を取り込みたいブランチ)を最新化しておきます。

$ git checkout develop
$ git pull origin develop

5.マージ

1.forkしたリポジトリのブランチにfork元のリポジトリのブランチをマージします。

$ git branch
* develop
...
...

$ git merge --no-ff fork_master_develop

6.push

1.forkしたリポジトリのブランチをpushします。

$ git push origin develop

以上です。
ちなみに3の手順はなくてもできます。
ローカルにリポジトリを作成せずに、リモートブランチを追従したいブランチに直接マージすればよいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
184
Help us understand the problem. What are the problem?