Skip to content

原文(日本語に翻訳)

cd <現在のディレクトリ> && git … が no-op の cd である場合、権限プロンプトが表示されなくなりました。

原文(英語)

Running cd <current-directory> && git … no longer triggers a permission prompt when the cd is a no-op

概要

Claude CodeのBashツールで、cd /current/dir && git status のように現在いるディレクトリへのcdを含むgitコマンドを実行する場合、これまでは不要な権限プロンプトが表示されることがありました。cdが実質的に何もしない(no-op)場合でも、コマンドが複合コマンドとして認識されて確認を求められていました。今回の改善でこの不要なプロンプトが削除され、作業がスムーズになります。

基本的な使い方

特別な操作は不要です。以下のようなコマンドがno-opのcdを含んでいても、不要な権限プロンプトが表示されなくなります。

bash
# 現在が /home/user/project にいる場合
cd /home/user/project && git status    # 権限プロンプトなし
cd /home/user/project && git log --oneline  # 権限プロンプトなし
cd /home/user/project && git diff HEAD~1    # 権限プロンプトなし

実践例

スクリプト生成コマンドの実行

Claudeが生成するBashコマンドにはしばしばcdが含まれます。no-opのcdが含まれていても権限確認なしで実行できます。

bash
# Claudeが生成するパターン(リポジトリルートを明示するため)
cd /home/user/myproject && git add -A
cd /home/user/myproject && git commit -m "fix: update dependencies"
cd /home/user/myproject && git push origin main

CI/CD設定での利用

ClaudeにCI/CDスクリプトを生成・実行させる際、冗長な権限確認が減ります。

bash
# Claudeが生成するCI設定の確認コマンド
cd /workspace && git status
cd /workspace && git log --oneline -5
cd /workspace && git branch -a

複数プロジェクトを扱う場合

複数のプロジェクトを切り替えながら作業する際、どのディレクトリにいても効率的に動作します。

bash
# プロジェクトAのディレクトリにいる場合
cd /projects/project-a && git status    # no-op → プロンプトなし

# プロジェクトBに移動後
cd /projects/project-b && git status    # 実際にcdが必要 → 通常通り処理

注意点

  • no-opの場合のみ: この改善は現在のディレクトリへのcd(実質的に何もしない)の場合のみ適用されます。異なるディレクトリへのcdは通常通り処理されます
  • gitコマンドの権限設定: gitコマンド自体の権限はsettings.jsonのallowedToolsで設定できます。この改善はあくまでno-opのcdによって生じていた冗長なプロンプトを削除するものです
  • セキュリティへの影響なし: この変更はno-opのcdをスキップするだけで、実際のセキュリティチェックは維持されています

関連情報