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

Bre*_*nik 6 git repository android-source

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

Tre*_*hns 5

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

[branch "YOUR_BRANCH_HERE"]
    remote = aosp
    merge = master
Run Code Online (Sandbox Code Playgroud)

没有这些,回购将不知道如何在repo upload以后运行时正确上载您的更改,这就像您的新分支根本不存在一样。

(其中还包含一些逻辑,可让您与同步为仓库中的每个项目创建新分支--all,但这只是方便。)


Von*_*onC 3

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

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


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

git checkout -b newBranch -t aosp/master
Run Code Online (Sandbox Code Playgroud)

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

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