👥
git clean -ffdx
-f が2つ?
偶然見かけて疑問に思ったので調べてみました。
git clean
を実行する際、オプションは -fdx
にすることが多いと思います。
Git will refuse to modify untracked nested git repositories (directories with a .git subdirectory) unless a second -f is given.
Git は通常 untracked なネストされた Git リポジトリ(.git
サブディレクトリを含むディレクトリ)を変更しませんが、2つ目の -f
を渡すと消してくれるようです。
git clean -ffdx
各オプションの説明
-f, --force
Git 設定で clean.requireForce
が false
になっていない場合、git clean
は -f
または -i
が与えられないとファイルやディレクトリを削除しません。
先に述べた通り2つ目の -f
を与えるとネストされた Git リポジトリも削除対象にします。
-d
再帰的にディレクトリを削除します。(ただし -f
で触れたネストされた Git リポジトリを除く)
-x
.gitignore
や $GIT_DIR/info/exclude
などの gitignore 設定に含まれているファイルやディレクトリも削除対象にします。
Discussion