[解決済み] masterブランチでのコミットを防止する
質問
(簡単のために) 私は
master
ブランチと
dev
ブランチを作成します。私は
master
ブランチが常に稼働しているようにしたいので、私が行う作業はすべて
dev
ブランチにあるはずです。
しかし、変更をマージする際に
--no-ff
でマージする場合、私はしばしば
master
ブランチにとどまり、その中で作業を続けることになります (なぜなら、自分の
dev
ブランチをチェックアウトするのを忘れてしまうからです)。
のルールを貼ることができますか?
master
ブランチに対して、コミットやマージの早送りはできないが、唯一
--no-ff
は別のブランチからマージするのですか?
これはプライベートホストリポジトリ(つまり、GitHubやBitbucketではない)で動作する必要があります。
どのように解決するのですか?
はい、可能です。master ブランチへのコミットを拒否する pre-commit フックを作成する必要があります。Git は、あなたが マージ コマンドを呼び出したときにはプレコミットフックを呼び出さないので、このフックは通常のコミットのみを拒否することになります。
-
リポジトリに移動します。
-
ファイルを作成します。 .git/hooks/pre-commitというファイルを作成します。 を、以下の内容で作成します。
#!/bin/sh branch="$(git rev-parse --abbrev-ref HEAD)" if [ "$branch" = "master" ]; then echo "You can't commit directly to master branch" exit 1 fi
-
実行可能な状態にする (以下の場合は不要) Windows ):
chmod +x .git/hooks/pre-commit
無効化する場合 早送り のマージを無効にするには、次のオプションを .git/config ファイルに追加する必要があります。
[branch "master"]
mergeoptions = --no-ff
リモートのmasterブランチも保護したい場合は、この回答を確認してください。 Git で master ブランチへのアクセスを制限する方法
関連
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Gitを使って最後のXコミットをまとめる
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルリポジトリのブランチをリセットして、リモートリポジトリのHEADと同じにする
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fatal: リモート参照マスタが見つかりませんでした。
-
Git がエラーを報告しました。現在のブランチの先端が遅れているため、更新が拒否されました。
-
git reset --hardとgit reset --softの違いについて
-
ファイル名が長すぎるため、作業ツリーをチェックアウトできない警告が表示されました。クローンには成功しましたが、チェックアウトに失敗しました。
-
gitの利用(ssh鍵の作成とgithubの利用)。
-
[解決済み] なぜGitでコミットする前にステージが必要なのですか?
-
[解決済み] Git は、省略形のコミット ID が 2 つの異なるコミットを参照する場合に警告を発しますか?
-
[解決済み] Git: リモートブランチの情報を更新する
-
[解決済み] Git git reset」後にコミットメッセージを再利用/保持するには?
-
[解決済み] ファイル変更時のDockerコンテナの再構築