1. ホーム
  2. git

[解決済み] 削除されたファイルのステージング

2022-03-17 18:54:11

質問

git リポジトリに foo .

で削除されたとします。 rm (ただし git rm ). そうすると、gitのステータスが表示されます。

Changes not staged for commit:

    deleted: foo

この個別ファイル削除をどのように演出すればよいのでしょうか?

やってみると

git add foo

と書かれています。

'foo' did not match any files.

アップデート(9年後、笑)。

git 2.xで修正されたようです。

$ git --version
git version 2.25.1

$ mkdir repo

$ cd repo

$ git init .
Initialized empty Git repository in repo/.git/

$ touch foo bar baz

$ git add foo bar baz

$ git commit -m "initial commit"
[master (root-commit) 79c736b] initial commit
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 baz
create mode 100644 foo

$ rm foo

$ git status
On branch master
Changes not staged for commit:
    deleted: foo

$ git add foo

$ git status
On branch master
Changes to be committed:
    deleted:    foo

解決方法は?

Git 2.0.0から。 git add は、ファイル削除のステージングも行います。

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

< pathspec >...

コンテンツを追加するファイル。ファイルグローブ (例: *.c) を指定すると、すべてのコンテンツを追加できます。 に一致するファイルです。また、先頭のディレクトリ名 (例えば dir を指定すると dir/file1 と dir/file2 を追加します) を指定すると、ディレクトリ全体の現在の状態に合わせてインデックスを更新します (例えば dir を指定すると、作業ツリーで変更したファイル dir/file1 と作業ツリーに追加したファイル dir/file2 だけではなく、作業ツリーから削除したファイル dir/file3 も記録します). 古いバージョンのGitでは、削除されたファイルを無視していたことに注意しましょう。変更されたファイルや新しいファイルを追加し、削除されたファイルを無視したい場合は --no-all オプションを使用します。