repo start和git checkout -b之间的区别

时间:2013-02-21 23:40:19

标签: git android-source repository

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

2 个答案:

答案 0 :(得分:4)

区别在于repo start为.git / config中的分支设置remotemerge属性:

[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不会设置任何东西,并创建一个纯粹的本地分支(不跟踪任何上游分支到远程仓库)