如何解决如何管理与 git 子模块的冲突?
我以前没有见过那个确切的错误。但我猜测你遇到的麻烦。看起来因为master
和的one.one
分支supery
包含subby
子模块的不同引用,当您从
git 合并更改时,master
不知道哪个 ref -v1.0
或v1.1
- 应该one.one
由supery
.
如果是这种情况,那么您需要选择所需的 ref 并提交该更改以解决冲突。这正是您使用 reset 命令所做的。
这是在项目的不同分支中跟踪子模块的不同版本的一个棘手方面。但是子模块 ref 就像您项目的任何其他组件一样。如果两个不同的分支在连续合并后继续跟踪相同的相应子模块引用,那么 git 应该能够计算出该模式,而不会在未来的合并中引发合并冲突。另一方面,如果频繁切换子模块引用,您可能不得不忍受大量的冲突解决。
解决方法
我有一个 git 超级项目,它引用了几个子模块,我试图锁定一个工作流程,让我的项目成员在其中工作。
对于这个问题,假设我的超级项目被调用supery
并且子模块被调用subby
。(然后是我正在尝试做的事情的简化......我实际上并没有将分支用于版本,但我认为最容易提出问题。)
我的 master 分支将 git 项目supery
的标签作为子模块引用。的分支调用并将子模块的引用更改为指向
的标签。v1.0``subby``supery``one.one``v1.1``subby
我可以毫不费力地在这些分支中的每一个中工作,但是如果我尝试one.one
使用来自分支的更改来更新分支,master
我会收到一些冲突并且我不知道如何解决它们。
基本上在分支中运行一段git pull . master
时间后subby
,它看起来像是创建了额外的子模块。
在拉/合并之前,我git submodule
从one.one
分支获得了所需的响应:
$ 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
它会忽略我的子模块?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。