Android的Repo不同步master以外的分支

时间:2016-11-10 21:24:57

标签: git repo

我正在使用Repo用于多存储库开发环境 在尝试更新所有存储库时,我执行repo sync,输出显示如下:

...
From github.com:<repo-name>
   1c9accf..4b2f449  feature/branch1 -> origin/feature/branch1
...

feature/branch1是我目前正在处理的分支,它是origin/feature/branch1后面的几个提交。它正在跟踪远程分支。

但在repo sync后,本地分支仍未更新。 仍在master的存储库工作正常 - 它们输出以下内容:

...
Fetching projects:  77% (7/9)  From github.com:<repo-name-on-master>
   eb99bff..372e69f  master     -> origin/master
Fetching projects: 100% (9/9), done.

<project-name>/: manifest switched refs/heads/master...master
project <project-name>/
Updating eb99bff..372e69f
Fast-forward
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
...

所以最后一部分 - 更新 - 没有发生在branch1。那是为什么?

default.xml看起来像这样,并且在github上的单独回购中:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name="origin" fetch=".." />
  <default revision="master" remote="origin" sync-j="4" />

  <project name="repo-name" path="api" />
  <project name="repo-name-2" path="docs" />
</manifest>

.git/config看起来像这样:

[core]
    repositoryformatversion = 0
    filemode = true
    ignorecase = true
    precomposeunicode = true
[filter "lfs"]
    smudge = git-lfs smudge --skip -- %f
[remote "origin"]
    url = git@github.com:<repo-name>
    projectname = <project-name>
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "feature/branch1"]
    remote = origin
    merge = refs/heads/feature/branch1

2 个答案:

答案 0 :(得分:1)

  

如果项目已经同步一次,那么repo sync相当于:

     

git remote update

     

git rebase origin /&lt;分支&gt;

     

其中&lt;分支&gt;是本地项目目录中当前签出的分支。如果本地分支未跟踪远程存储库中的分支,则不会对项目进行同步。

来自远程功能分支的提交是存在的(除非未正确配置远程跟踪分支)。他们只是不在你当地分支的最前端。

答案 1 :(得分:1)

repo sync仅更新您在清单文件中指定的分支,如您的问题所示,它是revision="master"

如果要同步branch1,则需要修改清单文件。

Repo command reference提供了有关repo sync

的一些详细信息