GitHubで指定したブランチを保護する
やり方を聞かれたので自分メモも兼ねて。 settings/branchesへ移動する 「Protected branches」という項目があります。 ここで保護(削除やpushを拒否する)ブランチを指定します。 ブランチ […]
広告ここから
広告ここまで
目次
やり方を聞かれたので自分メモも兼ねて。
settings/branchesへ移動する
「Protected branches」という項目があります。
ここで保護(削除やpushを拒否する)ブランチを指定します。
- コードレビューを実施されていること
- CIのテストが通っていること
- 最新版を取り込んでいること
などを保護ブランチへのマージ条件にできる様子です。
masterにpushしてみる
有効化したので、保護できているか試しましょう。
以下の様に、masterブランチでREADME.mdを変更してみました。
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
$ git diff
diff --git a/README.md b/README.md
index 0554833..b06580b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
## Lambda Test Example
+test
pushすると、rejectされます。
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: At least one approved review is required by reviewers with write access.
To github.com:hideokamoto/lambda-nodejs-test-practice.git
! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to '[email protected]:hideokamoto/lambda-nodejs-test-practice.git'
ブランチを変えてプルリクエストをだす
保護されているのはmasterのみなので、他のブランチにすることでpushできます。
$ git checkout -b test
Switched to a new branch 'test'
$ git push origin test
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:hideokamoto/lambda-nodejs-test-practice.git
* [new branch] test -> test
ただし「Require pull request reviews before merging」をオンにしているので、そのままではマージできません。
ということで、複数人でコード書いててプルリク駆動で開発したい場合などはぜひ。