Skip to content

原文(日本語に翻訳) ​

Linux でサンドボックス化された Bash コマンドの実行後に、作業ディレクトリに .bashrc、HEAD 等のゴーストドットファイルが未追跡ファイルとして現れていた問題を修正しました

原文(英語) ​

Fixed ghost dotfiles (.bashrc, HEAD, etc.) appearing as untracked files in the working directory after sandboxed Bash commands on Linux

概要 ​

Linux環境でClaude Codeがサンドボックス化されたBashコマンドを実行した後、プロジェクトの作業ディレクトリに .bashrc や HEAD などのドットファイルが「未追跡ファイル」として出現するバグがありました。これらは実際には存在しないファイル(ゴーストファイル)であり、git status で余分なファイルが表示される原因となっていました。修正後はこれらの不要なファイルが作業ディレクトリに現れなくなります。

基本的な使い方 ​

この修正は自動的に適用されます。Bashコマンド実行後のゴーストファイルが消えます。

bash
# 修正後: Bashコマンド実行後も作業ディレクトリはクリーンな状態を保つ
> ls -la コマンドを実行して
# → git status で余分なファイルが表示されなくなった

実践例 ​

修正前の問題の再現(Linux環境) ​

bash
# Claude Code でサンドボックスBashコマンドを実行した後
# git status を確認すると...
git status

# 修正前の出力例:
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#         .bashrc       ← 本来存在しないはずのファイル
#         HEAD          ← ゴーストファイル
#         .bash_history ← 不要なファイル

修正後の正しい動作 ​

bash
# Claude Code でサンドボックスBashコマンドを実行した後
git status

# 修正後の出力例:
# nothing to commit, working tree clean
# または実際の変更ファイルのみが表示される

影響を受けていたワークフロー ​

bash
# CI/CD パイプラインでのコミット前チェック
git status --porcelain
# → ゴーストファイルが表示されて空でないと判定されていた

# 修正後は正しく動作する
if [ -z "$(git status --porcelain)" ]; then
  echo "クリーンな状態"
fi

注意点 ​

  • この問題は Linux 環境でのみ発生していました(macOS / Windows では影響なし)
  • サンドボックス機能が有効な環境でのみ発生します
  • 実際にファイルが作成されていたわけではなく、ファイルシステムの状態が誤って報告されていました
  • git clean -fd で表示されても実際には削除対象がない場合がありました

関連情報 ​