Git 命令中躶 -- 表示什么

在使用 Git 的过程中,取消工作目录里文件的修改,敲git status命令时Git 会提示你使用:git checkout -- filename 命令去取消工作目录文件的修改,那这里面的--表示什么意思呢?

--后面带一个命令我们是能过理解的,比如git log --pretty=oneline,但是--后面什么也不带,到底表示啥意思呢?

其实--是用来表示后面接的是个路径,以避免歧义,比如git checkout -- filename,这里-- filename 表示filename是个路径(文件或目录),而不是branch或者tag 。当该仓库刚好有个 branch 或 tag 也叫 filename 的时候,不加--,直接敲git checkout filename,Git 就不知道是切换到 filename 这个branch还是拉取 filename 这个tag代码还是撤销工作目录中 filename 这个文件的修改。

另外,如果filename文件已经从 Git 库里删掉了,而又想看它的历史,那么git log filename是会报错的,用git log -- filename就可以了。

$ git rm a.txt
$ git log a.txt # 报错
fatal: ambiguous argument 'a.txt': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

$ git log -- a.txt # ok

现在应该能理解--的用处了吧。

转载于:https://my.oschina.net/banbo/blog/903689

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值