Git rm命令几种使用方式

1 直接删除仓库里面的文件,文件在staged里面无变化。

git rm 11
rm '11'

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

接着提交,将变化更新到仓库。git commit

[master 6eb8c6a] delete 11 v1.3
 1 file changed, 1 deletion(-)
 delete mode 100644 11
 

2 删除仓库里面的文件11,但11已经被修改,还没有被staged 

$ git rm 11
error: '11' has local modifications
(use --cached to keep the file, or -f to force removal)
加上-f选项强制删除,--cahed的意思是会删除staged里面的文件,但工作目录下的对应的文件会 保留。
$ git rm 11 -f
rm '11'

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    11
#
重新commit
[master 994b1ee] deleted 11 v1.3
 0 files changed
 delete mode 100644 11


3 删除staged里面的文件,但不删除工作目录下的对应文件。

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

$ git rm --cached 11
rm '11'

$ git status 
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       11
nothing added to commit but untracked files present (use "git add" to track)


4 git mv 更该文件名

$ git mv 11 12
$ git status 
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    11 -> 12
#
 相当于做了下面三个命令

$ mv 11 12
$ git rm 11
$ git add 12

用其他工具批处理改名的话,要记得在提交前删除老的文件名,再添加新的文件名。


下面我接着手动更新12名至13名,再git status发现,Git 会意识到这是两次连续的改名,11->12->13 ,很智能。

$ mv 12 13
$ git rm 12
rm '12'
$ git add 13
$ 
$ 
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    11 -> 13
#






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值