ゆったりWeb手帳

気になったことをのんびり書くよ

🎩

GitHubでforkしたリポジトリをfork元と同期する

forkしたリポジトリ

forkしたリポジトリはforkした時点のものになります。
有名OSSなどは日々更新されておりすぐに差分が発生してしまいます。
これまでは自分のリポジトリを消してまたforkしてとりあえず同期したような感じにしてましたが、ちゃんと同期をすることにしました。

ローカルにclone

forkしたリポジトリを更新するには、ローカルで作業を行います。
まずローカルにcloneします。
$ git clone https://github.com/{username}/{repository-name}.git

ローカルのリポジトリにfork元を登録

fork元のリポジトリを登録します。
$ git remote add root https://github.com/{forked-username}/{repository-name}.git
$ git remote -v // 登録したremoteを表示(originとrootが表示されます)
fork元のリポジトリを取得して、masterブランチにmergeします。
$ git fetch root
$ git checkout master
$ git merge root/master
あとはリモートにpushするだけ。
$ git push
これでリモートリポジトリもfork元リポジトリと同一になります。
一度ローカルにcloneする必要があるのが少し手間ですね。

そしていま

post-image
GitHubに便利な機能がリリースされました。
もうだいぶ前の話ですけどね。
fork元と差がある場合は1Clickで同期をとることができます。
Fetch and mergeを押すだけ。
簡単になりましたね。