我有一个关于使用repo切换分支的问题。我知道我可以像这样签出一个分支:
$ repo init ... -b foo
$ repo sync
我的理解是,这将检查清单存储库的 foo 分支,然后按照清单中的描述检查 git 项目。
我也明白我可以像这样切换分支:
$ repo init ... -b bar
$ repo sync -d
我的问题是,我可以在每次不执行 repo init 和 repo sync 的情况下切换分支,这样做有什么影响?
让我用一个例子来说明:
$ repo init ... -b foo
$ repo sync -d
$ repo start foo-mytopic proj1 proj2
... make some commits ...
$ repo upload -t
$ repo init ... -b bar
$ repo sync -d
$ repo start bar-topic proj1 proj3
$ repo upload -t
$ cd proj1
$ git checkout foo-mytopic # IS THIS ALLOWED?
我以前试过这个,它似乎可以工作,但这有点奇怪,因为我现在检查了foo清单中的代码,但我当前的清单分支是bar。与清单中描述的分支不同,这意味着什么?
注意:我读过这个,我认为我的问题有所不同。我知道如何切换分支。我对位于与当前清单中描述的分支不同的分支的影响以及这可能如何影响我的工作流程感兴趣。