【问题标题】:repo does not create a tracking branch but git clone doesrepo 不会创建跟踪分支,但 git clone 会
【发布时间】:2026-01-02 05:05:01
【问题描述】:

我有 3 个被清单文件包裹的 git(此清单文件在第四个 git 中):

如果我想查看其中一个 git,我只需使用“git clone”。 在“git clone”之后,我得到了一个名为“master”的远程跟踪分支,非常完美。

但是,如果我想将所有三个 git 同步在一起,我会“repo init”/“repo sync”清单文件。但是,我得到的三个 git 中的任何一个中都没有创建远程跟踪分支“master”。因此,我必须手动“git checkout -b master”才能推回原点。

它有效,但是如果您知道我的意思,那么进行额外的“结帐”步骤会很烦人吗? 这是设计使然吗?有没有我不知道的简单方法?

【问题讨论】:

    标签: git repository


    【解决方案1】:

    检查这是否足以直接检查正确的分支:

     repo init -u url_manifest -b master
    

    如果没有,您仍然可以使用repo forall 将任何命令应用于所有项目:

     repo forall [PROJECT_LIST] -c "git checkout -b master"
    

    【讨论】:

    • “repo init”不起作用,但“repo forall”很棒。谢谢
    • repo init -b 选择应该在哪个分支上选择清单本身,而不是在哪个分支上签出存储库。如果清单在 master 之外的另一个分支上选择(一些)存储库,则您的示例不起作用。
    • @bjarkef 但是一个简单的 repo 同步可以按照分支清单下载正确的代码,但是?如*.com/a/11529936/6309