Android Source repo sync最新更改?

Android Source repo sync最新更改?,android,repository,sync,Android,Repository,Sync,我有一个用于编译的Android源代码树的工作副本。我想同步回购协议的最新更改(他们所做的任何新事情),但我得到一个错误 "You have local changes to 'kernel'; cannot switch branches." "You have local changes to 'products/common.mk; cannot switch branches." 然后,在我假设的结尾处,出现了两个错误(之后似乎又进行了一行树同步) 所以,我的问题是,如何在本地更改的内

我有一个用于编译的Android源代码树的工作副本。我想同步回购协议的最新更改(他们所做的任何新事情),但我得到一个错误

"You have local changes to 'kernel'; cannot switch branches."
"You have local changes to 'products/common.mk; cannot switch branches."
然后,在我假设的结尾处,出现了两个错误(之后似乎又进行了一行树同步)

所以,我的问题是,如何在本地更改的内容之上同步他们的更改?
我无法提交更改,因为我不是项目的参与者,我希望将更改保留在本地。

虽然我没有太多使用
git
,并且我从建议消息中假设您正在访问git repo,但我相信该工具只是拒绝覆盖您的本地更改。。这是件好事,是吗?我认为事情的发生正是你所希望的,除非你想在你的本地工作和最新的回购协议之间切换


也许这本指南(如此)会有所帮助

您的问题实际上是git中经常遇到的情况—使用git进行本地化更改

当您使用
git pull
时,您只能获得本地git映像和远程git服务器之间的差异。无论何时进行本地更改,都可以发出
git diff
查看差异。因此,对于您来说,您的步骤应该是:

  • git diff>mydiff.patch
    获取您所做更改的补丁差异
  • git checkout-f
    以还原到本地化更改之前的原始图像
  • git pull
    从远程服务器执行完整的git更新。这就是
    repo-sync
    可以进入的地方,以及
    repo-sync
    基本上是一个git命令序列(通过
    ps-ef
    查看)
  • 然后通过
    patch-p1--dry run
    再次应用本地化更改,以测试重新应用。如果成功,请通过以下方式进行真正的修补:

    patch -p1 < mydiff.patch
    
    向下遍历时,我发现
    cts
    目录下有一个
    .git
    ,因此
    cd-cts
    git-diff
    给出了区别

    上面的方案非常简单,因为始终只有一个分支-主分支,并且您的更改总是位于该分支之上

    或者,您必须使用
    git branch
    构建自己的分支,然后使用
    git merge
    将分支合并到默认主分支(read)

    用于合并的命令将是
    git merge topic
    ,其中
    topic
    是使用
    git branch
    创建的分支,用于存放自定义更改


    总的来说,操作仍与上述操作相同-如果主分支和您的分支在同一行修改同一文件,或者您的修改发生在主分支之后,则会发生冲突。

    您可以使用其他分支进行更改。。。或者试试git-pull--rebase

    是的,这纯粹是我的理解不足。我不熟悉分布式源代码管理系统(用于颠覆)的工作原理
    Fetching projects: 100% (172/172), done.  
    Syncing work tree:   2% (4/171)  error: You have local changes to 'core/base_rules.mk'; cannot switch branches.
    Syncing work tree:   3% (6/171)  error: You have local changes to 'tools/dx-tests/Android.mk'; cannot switch branches.
    Syncing work tree: 100% (171/171), done.  
    
    external/dbus/: discarding 43 commits
    error: build/: platform/build checkout 0683a77348f2a0a529a8e2bcfdf4b6dc6b4c5f5b 
    error: cts/: platform/cts checkout a3779fa378345bfd8699e91de46b29563be4beb2