运行git命令时,空格和斜杠有什么区别?
有时我会看到:
git push origin master
(使用空格)
而其他时候我会看到:
git rebase origin/master
(使用斜杠)
这种约定有什么区别吗?是不是斜杠符号访问本地缓存副本,而使用空格版本实际上会访问远程库(github)?
运行git命令时,空格和斜杠有什么区别?
有时我会看到:
git push origin master
(使用空格)
而其他时候我会看到:
git rebase origin/master
(使用斜杠)
这种约定有什么区别吗?是不是斜杠符号访问本地缓存副本,而使用空格版本实际上会访问远程库(github)?
这不是“惯例”(convention)。前者是两个不同位置、有不同含义的参数,用于 git push
命令;而后者是一个单独的参数,用于标识远程跟踪分支 origin/master
。
git push origin master
更通用的写法是 git push <远程名称> <分支名称>
。 - Ryan Stewartgit push
命令时,您正在指定远程仓库,并且指定了一个 refspec(可能不仅仅是一个裸分支名称,请查阅手册)。而使用 origin/master
表示您正在指定一个“远程”分支,实际上它是一个本地分支,用于跟踪远程分支,并通过 git fetch
或 git pull
进行更新。 - Lily Ballardmaster
是你本地的主分支。origin/master
是你本地的“远程跟踪”分支,代表了origin
远程仓库中 master
分支的状态,并在你运行 git fetch
或 git pull
命令时更新。 - Lily Ballardgit pull
命令会更新远程跟踪分支 origin/master
,然后将其合并到您本地的分支(可能是 master
分支)。如果您本地没有更改过代码,则合并是一个快进操作。如果您只想要更新 origin/master
而不修改本地分支,请使用 git fetch
命令代替 git pull
命令。git fetch origin
命令应该会更新您在 origin
远程的所有远程跟踪分支。 - Lily Ballard