記事の内容
概要
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