7

在 Android 内核中做一些工作。我对 git 很熟悉,但对 repo 不是特别熟悉,所以我阅读了以下文档:http: //source.android.com/source/version-control.html。据我了解,以及围绕主题分支进行试验,repo start BRANCH_NAMEgit checkout -b BRANCH_NAME. 我的理解是正确的,还是我遗漏了一些微妙而重要的细节?

4

2 回答 2

6

不同之处在于在 .git/config 中为您的分支repo start设置remote和属性:merge

[branch "YOUR_BRANCH_HERE"]
    remote = aosp
    merge = master

如果没有这些,repo 将不知道如何在您repo upload稍后运行时正确上传您的更改,并且它会表现得好像您的新分支根本不存在。

(There's also some logic in there that lets you create the new branch for every project in the repo simultaneously with --all, but that's just a convenience thing.)

于 2014-05-13T22:37:52.580 回答
3

查看 repo start的start.py源代码,我认为主要区别在于对包含在 Android 项目中的清单文件的管理。

从清单中指定的修订开始,开始一个新的开发分支。


要添加到Trevor Johns答案,您需要检查“如何使现有的 Git 分支跟踪远程分支? ”(当您不使用时repo start):

git checkout -b newBranch -t aosp/master

这将在与新分支关联的配置中设置远程和合并(-t=“track”)。

一个简单的git checkout -b不会设置任何东西,并创建一个纯粹的本地分支(不跟踪任何上游分支到远程仓库)

于 2013-02-22T07:59:39.883 回答