2016-11-10 6 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のために起きていません。何故ですか?

.git/config

<?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> 
は次のようになります:

[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

プロジェクトが既に一度同期されている場合は、同期のレポ

default.xmlは、次のようになりますし、githubの上の別のレポにあります

gitリモートアップデート

0123と同等です

gitが< BRANCH>は、ローカルプロジェクトディレクトリに現在チェックアウトブランチです起源/ < BRANCH>

をリベース。ローカルブランチがリモートリポジトリ内のブランチを追跡していない場合は、プロジェクトの同期は行われません。

リモート機能ブランチからのコミットは、リモートトラッキングブランチが正しく設定されていない限り、そこにあります。彼らはあなたの地元の枝の先端ではありません。

+0

私は質問にいくつかの情報を入れました - 私はなぜ 'master'が働いているのか分からず、' branch1'は – pkyeck

+0

ではありません。これを手作業で行うと( 'git remote update'と' git rebase origin/branch1')、あなたが期待するのと同じように、すべてが最新の状態になります。 'repo sync'を実行しているときはそうではありません。 – pkyeck

1

repo syncマニフェストファイルで指定したブランチを更新するだけです(質問に示されているとおり、revision="master")。

branch1を同期する場合は、マニフェストファイルを変更する必要があります。

Repo command reference

は、あなたが「しかし、レポ同期後にローカルブランチはまだ更新されていません。」とはどういう意味ですか repo sync

+0

hmmm、それは私が思ったことです。しかし、 'repo start feature/test1 .'を使ってブランチを開始すると、' repo'はブランチについて知っていて、 'sync'でそれを更新します:( – pkyeck

+0

@pkyeck、Iあなたと同じ期待を持っていますが、repoのドキュメントによれば、オリジナルのプロジェクトをあなた自身のプロジェクトに置き換えるのに 'local_manifests 'を使うことが推奨されます。 – gzh

関連する問題