为了账号安全,请及时绑定邮箱和手机立即绑定

Git子模块跟踪最新

Git子模块跟踪最新

Git
aluckdog 2019-06-12 15:15:06
Git子模块跟踪最新我们正在将我们的(庞大)项目转移到GIT,我们正在考虑使用子模块。我们的计划是在超级工程中有三个不同的领导:发布,稳定,最新。项目负责人将处理发布和稳定的分支。他们将根据需要移动子模块。问题是“最新”的头。我们希望超级工程“最新”头跟踪所有子模块的主分支(自动)。而且,如果它能够显示所有提交到子模块的历史,那就太棒了。我看过奴隶,但这不是我们想要的。有什么建议吗?
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

GIT 1.8.2增加了跟踪分支的可能性。

"git submodule“开始学习一种新的模式与远程分支的尖端集成。(而不是集成到超级项目的gitlink中记录的提交)。

# add submodule to track master branch
git submodule add -b master [URL to Git repo];

# update your submodule
git submodule update --remote

如果你有一个子模块已经存在你现在希望跟踪一个分支,见“如何使现有子模块跟踪分支".

亦见Vogella关于子模块的教程有关子模块的一般信息。

注:

git submodule add -b . [URL to Git repo];
                    ^^^

看见git submodule手册页:

一种特殊的价值.用于表示子模块中分支的名称应该与当前存储库中的当前分支同名。.


看见提交b 928922727d6691a3bdc28160f93f25712c565f6:

submodule add*如果--branch是给定的,记录在.gitmodules

这使您可以轻松地记录submodule.<name>.branch选择.gitmodules当您添加一个新的子模块时。有了这个补丁,

$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>

减为

$ git submodule add -b <branch> <repository> [<path>]

这意味着未来的电话

$ git submodule update --remote ...

将从用于初始化子模块的同一分支获得更新,这通常是您想要的。

签名人:W.Trevor King


原答复(2012年2月):

子模块是父回购引用的单个提交。
由于它本身就是一个Git回购,所以“所有提交的历史记录”可以通过git log在那个子模块里。

因此,如果父模块要自动跟踪子模块的给定分支的最新提交,则需要:

  • 子模块中的cd
  • Git获取/拉,以确保它在正确的分支上有最新的提交。
  • 光盘返回父回购
  • 添加和提交以便记录子模块的新提交。

基奴(你已经看过了)似乎是最合适的,包括提交操作.

由于需要签出正确的子模块分支、进行更改、提交,然后进入超级项目并提交(或至少记录子模块的新位置),对子模块进行更改是有点烦人的。

其他选择包括详见.


查看完整回答
反对 回复 2019-06-12
  • 1 回答
  • 0 关注
  • 436 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信