【问题标题】:How does git deal with identical branch names from two different remote repo?git 如何处理来自两个不同远程仓库的相同分支名称?
【发布时间】:2015-10-16 09:03:30
【问题描述】:

如果我使用 git remote add 为一个 repo 设置了两个远程,并且这两个 repo 包含一个同名的分支。当我使用 git checkout 切换到它时,git 如何知道我打算使用哪个 repo 的哪个分支?

【问题讨论】:

    标签: git git-remote git-checkout


    【解决方案1】:

    当我使用 git checkout 切换到它时,git 如何知道我打算使用哪个 repo 的哪个分支?

    它没有。通常,如果存在歧义,例如在这种情况下,两个遥控器(“origin”和“upstream2”)都有一个devel 分支:

    $ git branch -a
    * master
      remotes/origin/HEAD -> origin/master
      remotes/origin/devel
      remotes/origin/master
      remotes/upstream2/devel
      remotes/upstream2/master
    

    如果我只是尝试git checkout devel 我会得到:

    $ git checkout devel
    error: pathspec 'devel' did not match any file(s) known to git.
    

    我需要明确:

    $ git checkout -b devel remotes/upstream2/devel
    Branch devel set up to track remote branch devel from upstream2 by rebasing.
    Switched to a new branch 'devel'
    

    将此与我只有一个遥控器的情况进行比较:

    $ git branch -a
    * master
      remotes/origin/HEAD -> origin/master
      remotes/origin/devel
      remotes/origin/master
    

    然后:

    $ git checkout devel
    Branch devel set up to track remote branch devel from origin by rebasing.
    Switched to a new branch 'devel'
    

    【讨论】:

    • (注意:此行为适用于 git 版本 2.4.0)
    猜你喜欢
    • 2012-08-16
    • 1970-01-01
    • 2020-01-24
    • 2021-05-27
    • 2022-01-14
    • 1970-01-01
    • 2013-10-07
    • 2013-03-25
    • 2012-04-06
    相关资源
    最近更新 更多