5
2

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でフォーク先から上流リポジトリにPRを送るときにやること

Last updated at Posted at 2020-06-07

はじめに

最近、Microsoft さんが GitHub で公開している OSS へのプルリクエスト(PR)を送ることが多くなりました。
PR は、フォークした自身のリモートリポジトリ -> 本家リポジトリの形で送っていますが、本家リポジトリはかなりの頻度で更新が行われているため、本家リポジトリをフォークした時点と PR を送る時点にて、内容に多くの差分があることがあります。
そのため、自身の忘備録として、PR を送る前にやることをまとめました。

PR前にやること

upstream の設定

これは、GitHub 上でフォークする時は(おそらく)自動で行ってくれていると思いますが、きちんと本家のリポジトリが upstream に設定されているかを確認します。
今回は、Visual Studio Code の Azure Databases 拡張機能を例にしていきます。

Fork したリポジトリを Clone しているディレクトリに移動します。

cd vscode-cosmosdb

git remote -vを実行して、upstream が設定されているか確認しましょう。

git remote -v
実行結果
origin  https://github.com/ymasaoka/vscode-cosmosdb.git (fetch)
origin  https://github.com/ymasaoka/vscode-cosmosdb.git (push)
upstream        https://github.com/microsoft/vscode-cosmosdb.git (fetch)
upstream        https://github.com/microsoft/vscode-cosmosdb.git (push)

はい、きちんと設定されています。
もし、upstream が設定されていない場合は、きちんとフォーク元の上流リポジトリを設定しましょう。

git remote add upstream https://github.com/microsoft/vscode-cosmosdb.git

フォーク先のリポジトリを最新化

フォーク先のリポジトリが、フォーク元のリポジトリの最新の状態と同期するようにします。
上流リポジトリから、ブランチと各ブランチのコミットをフェッチします。

git fetch upstream

フォーク先のリポジトリを更新

現在見ているブランチを master に変更します。

git checkout master

upstream/masterからmasterブランチに変更をマージします。
フォーク元のリポジトリに存在しない、独自のコミットが存在する場合は、ファーストフォワードでマージが行われます。

git merge upstream/master

この操作では、フォーク先のリポジトリのローカルが最新化されただけなので、きちんとリモートのフォーク先リポジトリにプッシュをします。

git push origin master

これで、フォーク先のリモートリポジトリが最新化されました。
最新化したのち、きちんと PR を送りましょう。

おわりに

プロジェクトによっては、リポジトリをフォークせずにブランチで対応する、などもありますが、OSS 界隈では特に 個人として貢献している といった見え方を推奨している部分もあるので、よくフォークしがちな時分です。
PR 出したいは良いものの、コードが古くてマージしてもらえない、相手にマージしてもらうために無駄な作業を行わせてしまう、といった負荷を与えないためにも、リポジトリは最新化した状態で PR を送りたいですね。

**なお、これを実施したからといって必ず PR が承認されるわけではありません。**その点、予めご承知おきいただければと思います。

参考情報

GitHub ヘルプ


5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?