web-dev-qa-db-ja.com

削除ファイルのステージング

Gitリポジトリにfooというファイルがあるとします。

rmgit rmではなく)で削除されたとします。するとgitのステータスは次のようになります。

Changes not staged for commit:

    deleted: foo

この個別のファイル削除をどのように段階的に進めるのですか?

私が試した場合:

git add foo

それは言います:

'foo' did not match any files.
421
Andrew Tomazos

ファイルを削除用にステージングするには、git rm fooを使用します。 (ファイルシステムからファイルが削除されていない場合は、これもファイルシステムから削除されます。もちろん、以前にチェックインされていたので、gitから復元することもできます。)

ファイルシステムから削除せずにファイルを削除用にステージングするには、git rm --cached fooを使用します。

451
Wooble

あなたはgit add -uをすることができます。

これは、それぞれに対してgit rmを実行せずに複数のファイルを削除したい場合に役立ちます。

364
Sailesh

手動で削除されたファイルをすべてステージングするには、次のものを使用できます。

git rm $(git ls-files --deleted)

このコマンドにエイリアスをgit rm-deletedとして追加するには、次のコマンドを実行します。

git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
133
Ian Mackinnon

すべての削除済みファイルを追加する

git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all

念のため確認してください

git status

あなたは行ってもいいはずです

30
chet corey

Git 2.0.0以降、git addはファイルの削除も行います。

Git 2.0.0ドキュメント - git-add

<pathspec>…

コンテンツを追加するファイル。ファイルグロブ(例:* .c)を指定して、一致するすべてのファイルを追加できます。また、ディレクトリ全体の現在の状態に一致するようにインデックスを更新するために、先頭のディレクトリ名(たとえば、dir/file1およびdir/file2を追加するdir)を指定できます(たとえば、dirを指定すると、変更されたファイルdir/file1だけではなく記録されます)。ワーキングツリーでは、ワーキングツリーにdir/file2というファイルが追加されましたが、ワーキングツリーからdir/file3というファイルも削除されました 以前のバージョンのGitでは削除されたファイルは無視されていました。変更したファイルや新しいファイルを追加したいが、削除したファイルは無視したい場合 -

11
peflorencio

あなたが使用することができます

git rm -r --cached -- "path/to/directory"

削除されたディレクトリをステージングする。

7
GameScripting