ファイル削除

記事の内容

概要

rmコマンドは、ステージングエリアおよびワーキングディレクトリからファイルを削除します。
※Gitが追跡している状態

rm
作成方法

git rm ファイル名

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file1.txt
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

$ git rm file1.txt
rm 'file1.txt'

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file1.txt

オプション一覧

オプション説明
-f強制的に削除
-rファイルを削除する際にディレクトリ全体を削除
--cachedステージングエリアからのみファイルを削除

-f

-fオプションは、Gitが追跡しているが変更が加えられているファイルを強制的に削除します。

rm -f
$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file1.txt
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

$ vim file1.txt

【vimでfile1.txtを変更して保存】

edited

:wq
『編集されているのでエラー』
$ git rm file1.txt
error: the following file has local modifications:
    file1.txt
(use --cached to keep the file, or -f to force removal)

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file1.txt
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

『強制削除』
$ git rm -f file1.txt
rm 'file1.txt'

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file1.txt

-r

-rオプションは、ファイルを削除する際にディレクトリ全体を削除することもできます。

rm -r
ディレクトリ階層

my_project
├─ .git
├─ file
│  ├─ file1.txt
│  └─ file2.txt
└─ index.html

『ディレクトリー全体を削除』
$ git rm -r file
rm 'file/file1.txt'
rm 'file/file2.txt'

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file/file1.txt
	deleted:    file/file2.txt

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 index.html

--cached

--cachedオプションは、ステージングエリアのみファイルを削除します。
※ワーキングディレクトリからは削除しない

cached
$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file1.txt
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

『ステージングエリアのみファイル削除』
$ git rm --cached file1.txt

$ ls -l
drwxr-xr-x  13 tomoji  tomoji  416  3  4 12:34 .git
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file1.txt
-rw-r--r--  1  tomoji  tomoji    0  3  4 12:34 file2.txt

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file1.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	file1.txt
記事の内容
閉じる