我正在使用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
答案 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