m/master 在 git 中对于分支来说意味着什么?

Jac*_*ack 2 git repo

当我git log --oneline在本地仓库中执行此操作时,我将其视为m/master一个分支,m/master这意味着什么?这是否代表我当地的主分支。

$ git log --oneline
7c5a48b (HEAD -> default, origin/featureBranch, origin/master, m/master, master) commit xyz changes
.
.
.
Run Code Online (Sandbox Code Playgroud)

我还看到 HEAD 指向default,是default另一个分支吗?是default标准默认分支吗?我认为master是默认标准分支,因为我可以看到masterdefault作为分支?

Elp*_*Kay 8

m/master是该工具使用的特殊参考repo。它的全名是refs/remotes/m/master. 虽然它使用了refs/remotes,但它并不是像origin/master. 该存储库没有名为 的远程m

为了初始化repo工作区,我们使用

repo init -u <url_to_manifest_repo> -b <branch> -m <path_to_manifest>
Run Code Online (Sandbox Code Playgroud)

-b <branch>指示repo<branch>克隆清单存储库后签出。如果省略,则默认为-b master. 但该repo工具创建的refs/heads/default是替代refs/heads/<branch>. 在您的情况下也存在master,因为master确实存在于远程存储库中并且曾经在本地存储库中签出或创建。

该工具为清单存储库中定义的每个项目repo创建。就你而言,它是. 如果你用的话,那就可以了。在清单存储库中, 的值为。在项目存储库中,其值为或。并在清单中定义。refs/remotes/m/<branch><path_to_manifest>m/master-b foom/foom/<branch>refs/remotes/origin/<branch>refs/remotes/origin/<upstream>refs/remotes/origin/<revision>upstreamrevision