在Android内核中做一些工作。我对git非常熟悉,但对repo并不是特别熟悉,所以我阅读了以下文档:http://source.android.com/source/version-control.html。根据我的理解,以及对主题分支进行试验,repo start BRANCH_NAME
与git checkout -b BRANCH_NAME
相同。我的理解是正确的,还是有一些我遗漏的微妙,重要的细节?
答案 0 :(得分:4)
区别在于repo start
为.git / config中的分支设置remote
和merge
属性:
[branch "YOUR_BRANCH_HERE"]
remote = aosp
merge = master
如果没有这些,repo将不会知道如何在以后运行repo upload
时正确上传您的更改,并且它将表现为您的新分支根本不存在。
(还有一些逻辑可以让你在--all
的同时为repo中的每个项目创建新的分支,但这只是一个方便的事情。)
答案 1 :(得分:2)
关于回购开始start.py
source code,我认为主要区别在于管理 manifest files ,这些都包含在Android项目中。
从清单中指定的修订开始,开始一个新的开发分支。
要添加到Trevor Johns'answer,您需要选中“How do you make an existing Git branch track a remote branch?”(当您不使用repo start
时):
git checkout -b newBranch -t aosp/master
这将在与新分支相关联的配置中设置远程和合并(-t
=“track”)。
一个简单的git checkout -b
不会设置任何东西,并创建一个纯粹的本地分支(不跟踪任何上游分支到远程仓库)