git参数:冒号与前锋斜线

时间:2013-08-06 16:14:54

标签: git

有些git命令参数使用:,有些使用/。例如,

# Using /
# `dev` is a branch name
$ git checkout -b dev upstream/dev

# Using :
# `master` is a branch name
$ git push origin HEAD:master
$ git push origin :dev

如果有的话,记住何时使用:/的逻辑是什么?

3 个答案:

答案 0 :(得分:6)

冒号:是refspec的一部分,通常在处理遥控器时使用,即取,拉,推等。

作为Nirk points out in his answer,正斜杠/是引用的路径分隔符,通常用于命名引用。

例如,您的本地master分支是参考refs/heads/master的简写,而origin/masterrefs/remotes/master的简写。这些是您在.git/refs/文件夹下找到的实际目录路径。

答案 1 :(得分:5)

:也可以为某些命令(而不是其他命令)分隔ref和路径。 e.g。

$ git show HEAD:src/main/Main.scala

VS

$ git blame HEAD -- src/main/Main.scala

有趣的有趣。

答案 2 :(得分:3)

refspec中的:分隔引用的源和目标:

The format of the refspec is an optional +, followed by <src>:<dst>, 
where <src> is the pattern for references on the remote side and <dst> 
is where those references will be written locally. The + tells Git to 
update the reference even if it isn’t a fast-forward.

http://git-scm.com/book/ch9-5.html

/是标准路径分隔符(在本例中,来自远程{{​​1}}的分支dev