最好用一个例子来解释:我在存储库的 0.58 分支上,这是我 pull 的方式:

git pull origin 0.58

当我只是调用“git pull”时,我得到:
ip238:openlierox az$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.0.58.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.0.58.remote = <nickname>
    branch.0.58.merge = <remote-ref>
    remote.<nickname>.url = <url>
    remote.<nickname>.fetch = <refspec>

See git-config(1) for details.

当我检查该分支时,似乎我可能忘记了一些选项(--track ?)。无论如何,我现在已经设置了:
git config branch.0.58.merge 0.58
git config branch.0.58.remote origin

这似乎有效。然后,出于兴趣,我查看了有关这些设置的其他一些分支:
ip238:openlierox az$ git config branch.0.57.merge
refs/heads/0.57
ip238:openlierox az$ git config branch.0.57.remote
origin

我现在想知道,“0.58”之间有区别还是应该指定“refs/heads/0.58”?

究竟有什么区别?

最佳答案

ref 是指向提交的任何内容,例如分支(头)、标签和远程分支。您应该在 .git/refs 目录中看到头、远程和标签,假设您的存储库中有所有三种类型的引用。refs/heads/0.58 指定了一个名为 0.58 的分支。如果您没有指定 ref 所在的命名空间,git 将查找默认命名空间。这使得仅使用 0.58 可能会产生歧义——您可以同时拥有一个名为 0.58 的分支和一个标签。

关于git: "branchname"和 "refs/heads/branchname"之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1526471/

10-14 01:56