😵‍💫

ブランチを作成しGithubでデフォルトブランチに設定する

2024/06/05に公開

やりたいこと

  • mainブランチからdevelopブランチを作成する
  • mainブランチに直接変更を加えられず、必ずレビューしたプルリクエストだけをマージしたい
    → どうやらこれはGithubのフリープランだとできないらしいので断念
  • ついでにcloneしたときのデフォルトブランチもdevelopにしたい

ブランチ作成の作業手順

1. プロジェクトをダウンロードする

Githubにプロジェクトをまだ作っていない方は以下を参照して作成しておくこと。
https://docs.github.com/ja/repositories/creating-and-managing-repositories/creating-a-new-repository

以下のページを参考に、作成したプロジェクトをローカル環境にダウンロードする。
https://docs.github.com/ja/repositories/creating-and-managing-repositories/cloning-a-repository

2. mainブランチからdevelopブランチを作成する

ブラウザ上で行う場合はこちらを参照
https://docs.github.com/ja/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository

以下はローカルのPCでブランチを作成する手順。

VSCodeを開き、画面上部のメニューから「ファイル → フォルダを開く」を選択。
手順1でダウンロードしたプロジェクトを開く。(以下のコマンドで開いても良い)

zsh
cd プロジェクトのディレクトリ
code .

プロジェクトを開いたら、VSCodeのターミナルで以下を実行しdevelopブランチを作成する。

zsh
git switch -c develop

作成したブランチを以下のコマンドでGithubに反映する。

zsh
git push origin develop

デフォルトブランチをdevelopに変更する

1. Github上で設定を変更する

リポジトリの「Setting」を開きます。
Generalの中にDefault branchという項目があるので、「⇔」みたいなアイコンをクリック。

表示されるダイアログ上で変更したいブランチを選択し、「Update」ボタンを押せば完了です。
(1回エラーになったけどもう1回やったら無事できました)

参考

https://docs.github.com/ja/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/changing-the-default-branch

mainブランチに変更を加えられないようにする

フリープランじゃできなみたいです。
他の方法がないか調査中・・・・。

Githubのブランチルールを調べているときのメモ

mainブランチに直接変更を加えられないようにする

Githubでルールを設定したいリポジトリ(プロジェクト)を開きます。
「Settings → Branches → Branch protection rules」の順でクリックし、ブランチルールを設定する画面を開きます。

「Add branch protection rule」をクリックしてブランチのルールを設定していきましょう。

1. ルールの設定

No. 項目名 設定内容 説明
Ruleset Name main branch ruleset ルール名
Enforcement status Active このルールの有効無効
Require a pull request before merging True マージ前のレビューを必須にするかどうか
4 Required approvals 1 レビューが必要な人数
5 Dismiss stale pull request approvals when new commits are pushed True 追加の変更があった際に再レビューを必須にするかどうか
Require status checks to pass True ステータスチェックがすべて合格するまでマージできないようにするかどうか

Discussion