我应该在什么时候使用;“远程/分支机构名称”;vs";“远程分支机构名称”;在git命令中?

我应该在什么时候使用;“远程/分支机构名称”;vs";“远程分支机构名称”;在git命令中?,git,Git,什么时候应该在git命令中使用“远程/分支名称”与“远程分支名称” 有时我发现命令需要“远程/分支名称”,有时我发现它们需要“远程分支名称” 我总是忘了什么时候使用它们——我能记住一条规则吗?记住git从命令shell接收参数,shell通过简单的分词生成位置参数列表(主要取决于shell) 斜杠字符不是任何类型的git运算符。例如,可能有名为master和origin/master的不同对象。名称中的斜线显示了实现细节。找个时间到.git/refs洞穴探险 要将最新更新推送到主分支,您需要运行

什么时候应该在git命令中使用“远程/分支名称”与“远程分支名称”

有时我发现命令需要“远程/分支名称”,有时我发现它们需要“远程分支名称”


我总是忘了什么时候使用它们——我能记住一条规则吗?

记住git从命令shell接收参数,shell通过简单的分词生成位置参数列表(主要取决于shell)

斜杠字符不是任何类型的git运算符。例如,可能有名为
master
origin/master
的不同对象。名称中的斜线显示了实现细节。找个时间到
.git/refs
洞穴探险

要将最新更新推送到主分支,您需要运行

git push origin master
运行
git push origin/master
甚至没有意义,因为该位置的参数应该命名一个远程。现在,你可以做一些奇怪的事情,比如

git remote add origin/master git@foo.com.invalid:bar/baz/quux.git
让它有点“意义”,但你会迷惑自己,可能会停止被邀请参加聚会。不要那样做

请使用其裸名称引用遥控器。跟踪分支的名称形式为
远程/分支
。要根据最新的母版重新设置基址,您可以签出母版、拖动、切换回分支并重新设置基址。通过直接引用跟踪分支,减少几个步骤,例如


它不是remote/repo,但通常是remote/branchname,用于“远程跟踪分支”。事实上,它几乎总是离我很远。
git-pull
命令破坏了这个模式,所以不要使用
git-pull
-将其拆分为
git-fetch
,然后是
git-merge
git-rebase
,然后它总是而不是几乎总是。@torek我认为这应该作为一个例子answer@RabeaAbdelWahab:正确的答案需要更多的空间,我想,这一领域以前已经被很好地覆盖过了。问题的根源在于,
git pull
可以追溯到git版本1.5之前,在远程跟踪分支存在之前,它仍然支持并使用旧的方式。这与torek在上面的评论相矛盾,torek在评论中指出了语法的演变。你的回答表明这两种语法仍然存在是有充分理由的。
$ git fetch
$ git rebase origin/master