git:跟踪远程分支而不是原点

时间:2012-09-24 19:37:09

标签: git branch git-branch

我的情况是:

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

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

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

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_machine1 my_machine2 之间跟踪/分享 myFoo 分支?

3 个答案:

答案 0 :(得分:2)

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

此外,git add的-f选项会在add之后执行fetch,这非常适合检查新添加的远程

中是否存在错误

答案 1 :(得分:1)

添加遥控器无法获取内容,您仍需git fetch my_machine1

答案 2 :(得分:1)

注意: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

因此,对于一个远程仓库(origin),git fetch更精确,提供的选项比git remote update更多。