【问题标题】:git: track a remote branch not on origingit:跟踪不在原点的远程分支
【发布时间】:2023-03-24 13:38:01
【问题描述】:

我的情况是这样的:

我确实在两台不同的机器上工作,它们都跟踪从另一个源 (git.domain_name) 克隆的存储库 (origin)。

一台机器,my_machine1,我创建了一个分支来添加一些功能,我们称之为myFoo

另一台机器 (my_machine2),我想跟踪(并且能够更新并推送到 my_machine1myFoo 分支。

my_machine2 上,我已经完成了git remote add my_machine1 my_user@my_machine1:/path/to/common/repo

但是如果我执行git branch -a,我看不到来自 my_machine1 的任何分支,只能看到来自 origin 的任何分支。如果我执行git ls-branch my_machine1,我可以在 my_machine1 上看到分支。将 myFoo 推送到原点不是一种选择。

有什么方法可以跟踪/共享 my_machine1my_machine2 之间的 myFoo 分支吗?

【问题讨论】:

    标签: git branch git-branch


    【解决方案1】:

    除了建议的 git fetch 之外,“git remote update”也可以工作(将获取所有遥控器)。

    另外,git add 的 -f 选项会在 add 之后进行 fetch,这很好地检查了新添加的 remote 中没有错误

    【讨论】:

      【解决方案2】:

      添加遥控器并不能获取内容,您仍然需要git fetch my_machine1

      【讨论】:

      • alternatlively,“git 远程更新”也可以。 git add 的 -f 选项在 add 之后执行 fetch,这对于检查新添加的 remote 中是否没有错误非常有用。
      【解决方案3】:

      注意:git remote update 将始终获取所有遥控器,就像 git fetch --all 一样(请参阅“git remote update”)

      正如“What is the difference between git fetch origin and git remote update origin?”中提到的,remote update是一个非常高级的命令

      • 它支持分组遥控器(remotes.<group> = <list>),
      • 并更新所有遥控器(设置remote.<name>.skipDefaultUpdate 的遥控器除外),
      • 但不是fetch 的任何更具体的选项。

      Git fetch 也支持 repos 组:

      $ git config remotes.mygroup 'remote1 remote2 ...'
      $ git fetch mygroup
      

      所以对于 一个 远程 repo (origin),git fetchgit remote update 更精确并提供更多选项。

      【讨论】:

        猜你喜欢
        • 2014-08-22
        • 2014-02-04
        • 2010-10-05
        • 1970-01-01
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 2012-10-23
        相关资源
        最近更新 更多