我有一个 git 超级项目,它引用了几个子模块,我正试图锁定一个工作流程,让其他项目成员在其中工作。
对于这个问题,假设我的超级项目叫做 supery
,子模块叫做 subby
。(然后是对我要做的事情的简化... ... 我实际上并没有使用分支来实现版本,但是我认为将它作为一个问题进行布局是最容易的。)
我的 supery
主分支将 git 项目 subby
的标记 v1.0
作为子模块引用。supery
的分支称为 one.one
,并将子模块的引用更改为指向 subby
的标记 v1.1
。
我可以毫无障碍地在每个分支中工作,但是如果我尝试用 master
分支的更改来更新 one.one
分支,我会收到一些冲突,而且我不知道如何解决它们。
基本上,在 subby
分支中运行 git pull . master
之后,它看起来像是创建了额外的子模块。
在拉取/合并之前,我从 one.one
分支得到了所需的 git submodule
响应:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
但是在提取之后,当我运行 git submodule
时,它会添加额外的子模块:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
如何删除/忽略不需要的子模块引用并提交冲突和更改?或者有一个参数,我可以使用我的原来的 git pull
,将忽略我的子模块?