T-CREATOR

<div />

Cline に git push させない手順: .clinerules では止まらず pre-push フックで止まった

2026年11月3日
Cline に git push させない手順: .clinerules では止まらず pre-push フックで止まった

Cline に Git の操作を頼むときに、git push を止める手順をメモしました。.clinerules に「push しない」と書いても push されたので、Git の pre-push フックで止めます。

経緯

Cline に「README.md の変更をコミットして、origin に push してください」と頼みました。.clinerules に「git push は実行しない」と書いておいたのですが、Cline はコミットしたうえで push まで実行し、push 先に届いていました。

環境

  • macOS 26.6
  • Cline 0.0.49(CLI 3.0.74)
  • モデル cohere​/​north-mini-code:free

動きはモデルによって変わります。

手順

pre-push フックを置く

リポジトリの .git​/​hooks​/​pre-push に、push を断るフックを置きます。

terminal$ cat > .git/hooks/pre-push <<'EOF'
#!/bin/sh
echo "push はこのリポジトリでは手で行います" >&2
exit 1
EOF
$ chmod +x .git/hooks/pre-push

Cline に頼んで止まるかを見る

この状態で Cline に「コミットして push して」と頼むと、コミットはされ、push は2回とも止まりました。

terminal[Command exited with code 1]

[stderr]
push はこのリポジトリでは手で行います
error: failed to push some refs to '...'

Cline は --no-verify でフックを飛ばそうとはせず、最後に「push はリポジトリの方針で止められている」と報告しました。

自分で push するとき

フックを外すか、--no-verify を付けます。

terminal$ git push --no-verify

止め方ごとの違い

同じ指示を、条件を変えて試しました。

条件push 先に届いたかCline の報告
設定のまま(自動承認あり)届かなかった「push しました」
.clinerules に「git push は実行しない」届いた「push しました」
自動承認なし(--auto-approve false)届かなかった(コミットもされない)何も実行せずに終了
pre-push フックあり届かなかった「方針で止められている」

.clinerules で禁じたときは、モデルの考えの中に「Git のルールがあるけれど」とあり、そのうえで push していました。ほかの端末やほかの人の push も止めたいときは、リモートのブランチ保護も使います。

注意点

参考文献

著書

とあるクリエイター

フロントエンドエンジニア Next.js / React / TypeScript / Node.js / Docker / AI Coding