【问题标题】:Why can "repo sync" overwrite my local changes?为什么“repo sync”可以覆盖我的本地更改?
【发布时间】:2016-01-20 15:39:59
【问题描述】:

当我在本地对 /framework/base 进行一些更改,然后输入 repo sync(要与 ROM 更改保持同步)时,它会自动覆盖我的本地更改。想象一下,如果我进行 100 次更改,我应该再做一次吗? 有没有不覆盖它们的方法? 谢谢你:)

【问题讨论】:

  • repo sync 不会覆盖本地更改,所以我不认为你在做你认为你在做的事情。你能给我们一个更详细的例子来说明你是如何使用这个命令的吗?
  • 好吧。我做了repo sync 之后做了repo init ecc 这个:github.com/AOSPB/manifest ..从这里一切都很好。确切地说,我不是回购的贡献者。所以我在本地对一些文件进行了一些更改..显然我无法提交它们,因为我不是我所说的贡献者。所以在我更改之后,我希望 repo 应该是最新的..但是每当我 repo sync 它说它将覆盖我的本地更改..事实上它做到了。但我不希望这样,repo sync 每次更改都会被覆盖。我希望你能理解我..谢谢:)
  • 更正了问题的措辞
  • 也许你有合并冲突?运行git status 进行检查。从 repo 文档中,“如果项目已经同步过一次,那么 repo sync 相当于:git remote updategit rebase origin/<BRANCH>

标签: android git frameworks rom repo


【解决方案1】:

如果您有未提交的更改,repo 不会覆盖它们。如果您在远程不存在的主题分支上提交了更改,repo 将检查清单修订。如果这些提交在远程的主题分支上,repo 将不会触及这些更改,除非你这样做 repo sync -d

因此,如果您没有要提交的远程,您可以使用本地分支。然后,当您执行repo sync 时,清单修订将被签出。然后你可以简单地做repo forall [<PROJECT_LIST>] -c <checkout my local topic branch>

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 2016-12-11
    • 1970-01-01
    • 2013-03-24
    • 2019-03-03
    • 2012-09-26
    • 2011-09-09
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多