![]() |
1
76
长的那个:
B的状态是存储在A中(签出
顺便说一句 Git book chapter on submodules 以及 submodule man page 包含大量关于子模块的有用信息,如正常用法和典型陷阱。值得一看。 编辑:我会尽量解释得更好 我冒昧地在上创建了示例项目 my github account ProjectFoo和ProjectBar都共享公共子模块中的代码。 6850E4C1FAC49DE398型 在ProjectFoo中:
-6850E4C1FAC49DE39890703F21486CA04B87A0普通 在ProjectBar中:
-6850E4C1FAC49DE39890703F21486CA04B87A0普通 所以两者都指向同一个版本,对吗?这里的技巧是看,ProjectFoo和ProjectBar指向 修订 (6850E4C1FAC49DE39890703F21486CA04B87A0) 不是分支机构 (师父),虽然他们是同一件事。第一个是分离的头,另一个是命名的分支。 如果您想对ProjectFooBarCommoneSubmodule进行一些修复,可以转到ProjectFoo中的子目录,然后 :
然后转到一个目录,检查git子模块的状态。它应该告诉你,你现在不同步了。例如
现在可以执行git add,设置对这个特定commit的引用(ge24bd…),执行commit,然后子模块引用指向这个修订版,这个修订版恰好也是ProjectFooBarCommoneSubmodule的主版本。
因此,与任何git存储库一样,您不需要在分离的头上工作。您可以使用master,也可以创建命名分支。不管是哪种方式,都要确保upstream包含ProjectFooBarCommoneSubmodule更改,否则如果ProjectFoo和ProjectBar引用了不存在的内容,您将同时中断它们。希望这能更好的解释 |
![]() |
2
5
上
|
![]() |
3
1
我只是想:
|
![]() |
4
1
注意:
如果其中一个子模块不包含要执行的提交,则将失败。
通过使用echo管道,可以强制整个命令返回0,并继续在其他子模块上执行commit命令 |
![]() |
5
1
如果要同时提交和推送所有子模块,请执行以下操作:
|
![]() |
6
0
要将从分离的磁头更改为主磁头,请运行:
|
![]() |
Hal · Commit语句的用法 6 年前 |
![]() |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 7 年前 |
![]() |
Dawid · 红移CTA和自动提交 7 年前 |
![]() |
Jsing · “SVN”是否具有像git那样挤压提交的机制? 7 年前 |
![]() |
four-eyes · 从特定提交开始创建新分支 7 年前 |
![]() |
Young Pattewa · 在Solr上重新加载(谷歌云) 7 年前 |