Git:移除文件----git rm命令的使用


一、git rm 命令使用

Git 本地数据管理,大概可以分为三个区:

  • 工作区(Working Directory):是可以直接编辑的地方。
  • 暂存区(Stage/Index):数据暂时存放的区域。
  • 版本库(commit History):存放已经提交的数据。

工作区的文件 git add 后到暂存区,暂存区的文件 git commit 后到版本库。


1.1 rm 命令

1. 作用: 删除工作区的文件。

执行删除命令:

$ rm test.txt

查看状态(成功删除工作区文件):

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    test.txt

no changes added to commit (use "git add" and/or "git commit -a")

rm 命令只是删除工作区的文件,并没有删除版本库的文件,想要删除版本库文件还要执行下面的命令:

$ git add test.txt
$ git commit -m "delete test"

2. 结果: 删除了工作区和版本库的文件。


1.2 git rm 命令

1. 作用: 删除工作区文件,并且将这次删除放入暂存区。

2. 注意: 要删除的文件是没有修改过的,就是说和当前版本库文件的内容相同。

执行删除命令:

$ git rm test.txt
rm 'test.txt'

查看状态(成功删除了工作区文件,并且将这次删除放入暂存区。):

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    test.txt

然后提交:

$ git commit -m "delete test"
[master f05b05b] delete test
 1 file changed, 3 deletions(-)
 delete mode 100644 test.txt

成功删除了版本库文件。

3. 结果: 删除了工作区和版本库的文件,因为暂存区不可能有该文件(如果有意味着该文件修改后 git add 到暂存区,那样 git rm 命令会报错,如下面的情况)。


1.3 git rm -f 命令

1. 作用: 删除工作区和暂存区文件,并且将这次删除放入暂存区。
2. 注意: 要删除的文件已经修改过,就是说和当前版本库文件的内容不同。

  • test文件修改过还没 git add 到暂存区
$ git rm test.txt
error: the following file has local modifications:
    test.txt
(use --cached to keep the file, or -f to force removal)
  • test文件修改过已经 git add 到暂存区
$ git add test.txt
$ git rm test.txt
error: the following file has changes staged in the index:
    test.txt
(use --cached to keep the file, or -f to force removal)

可见文件修改后不管有没有 git add 到暂存区,使用 git rm 命令删除都会报错。

  • 解决方法

执行删除命令:

$ git rm -f test.txt
rm 'test.txt'

查看状态(成功删除工作区和暂存区文件,并且将这次删除放入暂存区。):

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    test.txt

然后提交:

$ git commit -m "delete test"
[master 9d5d2d2] delete test
 1 file changed, 3 deletions(-)
 delete mode 100644 test.txt

成功删除了版本库文件。

3. 结果: 删除了工作区、暂存区和版本库的文件。


1.4 git rm --cached 命令

1. 作用: 删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区。

执行删除命令:

$ git rm --cached test.txt
rm 'test.txt'

查看状态(成功删除暂存区文件,保留工作区文件,并且将这次删除放入暂存区,注意这里文件取消了跟踪):

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    test.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        test.txt

然后提交:

$ git commit -m "delete test"
[master 223d609] delete test
 1 file changed, 3 deletions(-)
 delete mode 100644 test.txt

成功删除了版本库文件。

2. 结果: 删除了暂存区和版本库的文件,但保留了工作区的文件。如果文件有修改并 git add 到暂存区,再执行 git rm --cached 和 git commit,那么保留的工作区文件是修改后的文件,同时暂存区的修改文件和版本库的文件也被删了。

  • 66
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: git rm -r --cached 是一个 Git 命令,用于从 Git 仓库中删除文件或目录,并将其从 Git 的缓存区中移除。这个命令会将文件或目录从 Git 的版本控制中删除,但不会删除本地文件系统中的文件或目录。如果需要删除本地文件系统中的文件或目录,可以使用 git rm -r 命令。 ### 回答2: git rm -r --cached是一个git命令,用于将文件git版本库的缓存区(index)中移除,但不会删除本地工作区中的文件。 具体来说,该命令会将指定的文件或目录从git的暂存区中删除,但是仍将该文件或目录保留在本地磁盘上。这使我们可以选择性地从版本控制中删除文件,而不需要从本地磁盘中删除它们。 例如,执行以下命令: ``` git rm -r --cached example_folder/ ``` 将会删除名为example_folder的目录下的所有文件文件夹,并将其从git的暂存区中移除。此时该目录及其中的所有文件都不再受版本控制的管理,但仍然可以在本地的工作目录中找到它们。 需要注意的是,与git rm -r命令不同的是,git rm -r --cached不会在本地删除文件,因此需要在完成git rm -r --cached后手动删除不需要的文件。 总之,git rm -r --cached命令提供了一种管理git版本控制中文件的灵活方式,允许我们控制要将哪些文件提交到版本库中。 ### 回答3: git rm -r --cached是一个Git命令,它用于从Git暂存区中删除文件或目录,但不从文件系统中删除它们。该命令适用于需要取消Git版本控制的文件。相比之下,使用git rm命令可以在Git暂存区和文件系统中删除文件,而git rm --cached命令仅在Git暂存区中删除文件,而不影响文件系统中的文件Git rm -r --cached命令使用方式如下: git rm -r --cached <file or directory> 其中,<file or directory>表示要从Git暂存区中删除的文件或目录。 执行git rm -r --cached命令后,Git将取消跟踪选定文件的更改,并在暂存区中删除它们。但文件或目录本身并没有被删除,Git仍会将它们保留在本地文件系统中。如果需要将文件从本地文件系统中删除,请使用操作系统提供的文件系统命令,如rm、del等。 这个命令对于需要暂存一些文件但不参与版本控制的情况非常有用。同时,它也可以对不小心添加到Git版本控制中的文件进行取消控制的操作。在实际使用过程中,我们需要理解清楚Git命令的含义和功能,以便更加高效地使用Git进行版本控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值