マスターブランチを削除する方法

デフォルトブランチとして master から移行する方法

Selenium プロジェクトでは、トランクベース開発を実践しており、そこではtrunkがリポジトリのデフォルトの git ブランチの通常の名前です。ただし、プロジェクトが GitHub に移行した際、リポジトリは従来のmasterをデフォルトの git ブランチの名前として使用することに従いました。

Selenium プロジェクトを誰でも歓迎されるさらにインクルーシブな場所にするという意図をもって、デフォルトの git ブランチとしてtrunkを使用し、切り替え後にmasterブランチを削除することが決定されました。この変更により、いくつかの課題が発生しました。このブログ記事では、GitHub リポジトリで同じ変更を行いたい場合に注意すべき点をいくつか指摘します。

ドキュメント内のコードの特定の部分にリンクすることは一般的であり、そのリンクには通常ブランチ名が含まれています。ドキュメント内でmasterブランチ上のファイルへのリンクをダブルチェックしてください。変更後、リンク切れになる可能性があります。

ブランチ名の言及

同様に、ブランチ名は、コードコメント、貢献手順、Issue およびプルリクエストテンプレート、readme など、リポジトリのさまざまな部分で言及されています。これらの場所を確認することを忘れないでください。

GitHub リポジトリバッジ

私たちは皆、できるだけ多くのバッジを追加することで、GitHub リポジトリがどのように動作しているかを示したいと思っています。多くの場合、これらのバッジは、ビルドが実行されたブランチに依存するビルドステータスを報告します。Travis/CircleCI/GitHub Actions バッジが新しいブランチを指していることを確認してください。

継続的インテグレーションのセットアップ

オープンソースでの良い習慣は、ビルドを実行し、テストを実行し、場合によっては自動リリースを実行するための継続的インテグレーションのセットアップを持つことです。今日、CI 構成はファイル(例:Travis の場合は .travis.yml)で行われ、その構成の重要な部分の 1 つは、ビルドを実行する必要があるブランチの名前です。前の点と同様に、新しいブランチ名が CI インテグレーションで適切に構成されていることをダブルチェックしてください。

ビルドスクリプト

Selenium プロジェクトでは、継続的インテグレーションのセットアップを通じて実行されるカスタムビルドスクリプトがいくつかあります。例として、Java、Ruby、Python バインディングのドキュメントを生成するスクリプトがあります。このスクリプトは、ドキュメントを生成するためにコードのブランチ名を知る必要があります。同様の目的を持つスクリプトがある場合は、ブランチ名を変更した後に確認してください。

オープンなプルリクエスト

上記のタスクはすべて、おそらくテキストエディタと、リポジトリ内のすべてのファイルに対する大規模だが注意深い「検索と置換」で実現できるでしょう。簡単に言うと、新しいブランチtrunkに移行するために私たちが従ったプロセスは次のとおりでした。

  1. masterブランチに基づいて、trunkという名前の新しいブランチを作成します。
  2. 前のポイントで説明したすべての項目を実行します。
  3. これらの変更をコミットしてプッシュします。
  4. masterブランチを削除します。

それにもかかわらず、予想外のことが 1 つ起こりました。masterブランチを削除した後、すべてのオープンなプルリクエストがクローズされました。これらはすべてmasterブランチをターゲットにしていたため、理にかなっています。したがって、masterブランチを削除する前に、オープンなプルリクエストをダブルチェックし、必要に応じて、新しいブランチをターゲットにするように編集してください。

言うまでもなく、新しいブランチの名前は、コンテキストと環境に適した任意の名前を使用できます。たとえば、Selenium ウェブサイトのコンテンツを持つリポジトリは、現在、ウェブサイトのソースファイルを持つブランチとしてdevを使用し、公開される生成された静的ウェブサイトを持つブランチとしてpublishを使用しています。

これらは、SeleniumHQ GitHub組織下のすべての主要なリポジトリでmasterブランチを削除するプロセス中に学んだ教訓です。デフォルトブランチの名前としてmasterから移行することを決定した場合、これらが役立つことを願っています。

これはもともとhttps://opensource.saucelabs.com/blog/how_to_delete_your_master_branch/に投稿されたものです

最終更新日:2021年8月7日: ディレクトリ名の変更 (e9895f27c26)