web-dev-qa-db-ja.com

Git Shell:追跡されていないファイルから特定のファイルを削除する方法

シェルコマンドを使用して、gitの追跡されていないファイルから特定のファイルを削除したい。しかし、私が検索したように、のようなもののための解決策があります

-f - force, 
-d - directories too, 
-x - remove ignored files too.

このようなファイルをgitignore.gitignoreのように考えてみましょう。この問題のために、コマンドgit rm gitignore.gitignoreを試行したときはいつでも失敗しました。期待される結果をいただければ幸いです。

8
Raju

ファイルがgitによって追跡されていない場合、それを削除するのはgitの仕事ではありません。 git rmではなくrmのような通常のシェルコマンドを使用するだけです。

all追跡されていないファイルを削除する場合は、git cleanを実行します。

18
Marcus Müller

git clean -df -nが必要なだけかもしれませんが、最初に何をしているかを再確認するのに便利です。

NAME
       git-clean - Remove untracked files from the working tree

OPTIONS
       -d
           Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if
           you really want to remove such a directory.

       -f, --force
           If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete
           directories with .git sub directory or file unless a second -f is given.

       -n, --dry-run
           Don't actually remove anything, just show what would be done.

ただし、コミットされていない変更がある場合は、git checkout -- .を使用する必要があります。

3
Adam

作業ツリーにファイルがあり、それを削除したい場合は、git rmを使用します

doc から直接

git-rm-作業ツリーとインデックスからファイルを削除します

ここで、作業ツリーからファイルを削除するために、rmではなくgit rmを使用する理由

答えは-rmだけを使用する場合は、git add <fileRemoved>でフォローアップする必要があります。 git rmは、これを1つのステップで実行します。

Git rm --cachedを使用してファイルをインデックスから削除し(次のコミット時に削除するためにステージングする)、ローカルファイルシステムにコピーを保持することもできます。

この部分は https://stackoverflow.com/a/7434558 から取得されます

追跡されていないファイルを削除するには、ソースツリーに含まれている追跡されたファイルにrmを使用できます。git rmを使用します。

2

次のように、フラグ-iを使用してインタラクティブモードを使用できます。

git clean -id`

dはディレクトリの場合も同様です)aを押してファイルとフォルダーを反復処理し、削除するものとしないものを選択できます。

0
cerebrou