2016-11-10 29 views
0

我正在使用Repo用於多存儲庫開發環境。
當試圖更新所有回購,我做了repo sync和輸出顯示是這樣的:Android的回購不會同步除主人以外的分支

... 
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 = [email protected]:<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

一些細節你所說的「但回購同步之後仍然沒有更新的本地分支。」意思?當您結賬本地分行時會發生什麼? –

+0

它已經被簽出,但是新的提交沒有被提取或拉出 – pkyeck

+0

你確定提交沒有被提取嗎?我建議你瞭解提取和拉取之間的區別。您可能只需要合併遠程跟蹤分支。 –

回答

1

如果項目已經同步一次,然後回購同步相當於:

git遠程更新

git的變基原產/ <分公司>

其中<分公司>是在本地項目目錄當前簽出的分支。如果本地分支沒有跟蹤遠程存儲庫中的分支,那麼項目不會發生同步。

來自遠程功能分支的提交(除非遠程跟蹤分支配置不正確)。他們只是不在你當地的分支的尖端。

+0

我在問題中提出了一些更多的信息 - 我只是不明白爲什麼'master'正在工作,'branch1'不是 – pkyeck

+0

是的,但爲什麼不回購呢?當我手動執行此操作時('git remote update'和'git rebase origin/branch1'),所有內容都是最新的,就像您期望的一樣。但是在執行'repo sync'時沒有。 – pkyeck

1

repo sync只更新您在清單文件中指定的分支,如問題所示,它是revision="master"

如果你想同步分支1,你需要修改你的清單文件。

Repo command reference提供有關repo sync

+0

嗯,這就是我的想法。但期待/希望更類似於:如果你開始一個分支與'repo start feature/test1。',那麼'repo'然後將知道該分支並且還在'sync'上更新它::( – pkyeck

+0

@pkyeck,I對你有同樣的期待,但根據回購文件,建議使用'local_manifests'來替換原來的項目。 – gzh