マンガでわかるGit 10話「masterブランチを守れ!〜危険な強制プッシュ〜」

masterブランチを守れ! 〜危険な強制プッシュ〜




そ、それはだな……ごにょごにょ


わかばちゃん、私がリモートリポジトリのmasterブランチをプロテクトしておいたわ。これで、たとえ強制プッシュしてしまってもエラーで失敗するだけよ。
思う存分Gitしてね。


あ、ありがとうございます。
エルマスさんって、なんていうか、強いですよね……。

8,568通り、あなたはどのタイプ?

特定のブランチをプロテクト(保護)しよう

リモートリポジトリ上にある特定ブランチへの強制プッシュを、未然に無効化しておきましょう!

GitHub編

1.GitHubを開いて、Settings → Branches → Choose a branch の順にクリックします。

2.Protected branches 欄の、 Choose a branch をクリックし、保護したいブランチの名前を入力します。

3.Protect this branch のチェックマークをONにします。

4.ブランチの設定画面に戻ると、保護されているブランチの欄に、masterブランチが加わったのが見てとれます。

Bitbucket編

Bitbucketの場合、先に挙げたGitHubと同じ機能はありませんが、特定ブランチへpushできる人を制限する機能があるので、それで代用できます。

1.Bitbucketを開いて、設定 → ブランチのアクセス許可 → Add a branch permission の順にクリックします。

2.権限を設定したいブランチ名を入力し、そのブランチに対する権限を各ユーザーごとに設定できます。

たとえば、

  • 教授だけがmasterに直接pushできる
  • 教授だけがプルリクエストをmasterにマージできる

ようにしたいならば、Branch or patternに「master」と打ち込んだ上で、Write accessとMerge via pull requestに、教授のアカウント名を入れ「保存」をクリックします。

これで、通常のpushだろうと強制pushだろうと、権限がない人(教授以外)は、masterに直接pushができなくなります。

  • Write access : 書き込み権限
  • Merge via pull request : プルリクエストをマージできる権限

8,568通り、あなたはどのタイプ?

ちゃんとブランチが保護されたの? 確認してみる

さっきの設定で、本当にmasterブランチへの強制プッシュを防げるようになったのでしょうか?

試しに、強制プッシュして確認してみます。

SourceTree Windows版は、安全のために強制プッシュできない仕様になっているので、コマンドラインを使います。

SourceTreeのメニューから「ターミナル」アイコンをクリックします。(Mac版の場合は「端末」をクリック)

コマンドラインを打てる画面が表示されます。

以下のように打ち込み、エンターを押します。

$ git push -f origin master
  • git push -f ・・・ fは「force」の略。強制プッシュをするという意味
  • origin ・・・ リモートリポジトリの名前
  • master ・・・ プッシュしたいブランチの名前

強制プッシュの処理が始まりますが…


素晴らしい! エラーになって、無事、強制プッシュが防げたわね。

まとめ

  • GitHubの場合、「Protect this branch」で、特定のブランチへの強制プッシュ(git push -f)を防げる
  • Bitbucketの場合、「Add a branch permission」で特定ブランチへpushできる人を制限できるので、それで代用できる
  • 事前に、大切なブランチを保護しておくことで、チームみんなが安心して作業できるようになる
  • 「人に罪を作らせない仕組み」を整えよう!

次回予告 〜強制プッシュすると具体的にどうなっちゃうの?〜


強制プッシュとやらは、安易に使うとマジ危険っていうのがわかったよ。


そ、そうか。わかってくれたならいいんだ。


もし、さっき本当に私が強制プッシュしちゃってたら、具体的に何がどうなって困ってたわけ?


いい質問ね。単に「ダメ」と言われても、理由がわからないと、また同じような失敗をしてしまうかもしれないものね。

次回は、”強制プッシュするとどんなことが起きるのか”、テスト用のリポジトリで実験してみましょう。


実験!ワクワクするね!


とんだ破壊神だな、君は……。

マージ・リベース・プルリク。Gitの必須知識の解説は書籍版で!

マンガでわかるGitが書籍化いたしました!

わかばちゃんと学ぶ Git使い方入門
著者:湊川あい/監修:DQNEO
出版社:C&R研究所

  • CHAPTER 1 Gitって何?
  • CHAPTER 2 個人でGitを使ってみよう
  • CHAPTER 3 複数人でGitを使ってみよう
  • CHAPTER 4 実用Git 〜 こんなときはどうすればいい?
  • CHAPTER 5 Gitで広がる世界

CHAPTER 1・2は、Web連載の1〜9話をベースに、さらに詳しい解説・新しい図解を追加しました。

CHAPTER 3・4・5は書籍限定の内容となっています。

  • ステージングエリアやブランチの概念
  • マージ
  • リベース
  • コンフリクト解決
  • プルリク

といった基本の使い方はもちろん、CHAPTER4では、「Gitを使っていて、よくぶつかる状況」と「解決策」をまとめた逆引きTips集を収録しています。

Amazon試し読みはこちらから

登場人物紹介

著者プロフィール

湊川あいマンガ:湊川あい(みなとがわ あい)

フリーランスのWebデザイナー・マンガ家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。「マンガでわかるGit」書籍版発売中!
主な著書 わかばちゃんと学ぶ Webサイト制作の基本わかばちゃんと学ぶ Git使い方入門わかばちゃんと学ぶ Googleアナリティクス〈アクセス解析・Webマーケティング入門〉
Twitter: @llminatoll

※この記事は2017年4月27日時点における実施内容です。時期・環境・バージョンによって、操作が異なることがあります。

PC_goodpoint_banner2

Pagetop