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

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

文章目录

一、git rm 命令使用1.1 rm 命令1.2 git rm 命令1.3 git rm -f 命令1.4 git rm --cached 命令

一、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 ..." to update what will be committed)

(use "git checkout -- ..." 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 ..." 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 ..." 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 ..." to unstage)

deleted: test.txt

Untracked files:

(use "git add ..." 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,那么保留的工作区文件是修改后的文件,同时暂存区的修改文件和版本库的文件也被删了。

相关推荐

这谁能顶得住嘛!谭维维,这身材是真的绝!
365体育黑钱吗

这谁能顶得住嘛!谭维维,这身材是真的绝!

📅 10-03 👁️ 2403
设备3Q认证中IQ、OQ、PQ具体是什么?
365体育网址

设备3Q认证中IQ、OQ、PQ具体是什么?

📅 09-22 👁️ 3204
嗳气是什么?
365体育黑钱吗

嗳气是什么?

📅 07-15 👁️ 3610
联通版小米3怎么样?
365体育黑钱吗

联通版小米3怎么样?

📅 08-02 👁️ 8895
芜湖的Spa酒店
365体育黑钱吗

芜湖的Spa酒店

📅 10-05 👁️ 9211
中国历史上为何没诞生牛顿、爱因斯坦式的伟大科学家
一文让你学会PC软件升级,学不会过来打我
英雄联盟狂暴之心售价 英雄联盟狂暴之心售价
H3C华三路由器怎么样
365体育网址

H3C华三路由器怎么样

📅 09-05 👁️ 6862