编辑git子模块

编辑git子模块,git,git-submodules,Git,Git Submodules,这可能吗?假设我有父母和孩子。两者都是git的职责。子模块是父模块的子模块 我是否可以像常规存储库一样对父存储库中的Child版本进行编辑并提交和推送它们 或者我需要一个单独的克隆孩子的地方,我作出改变 谢谢。您不需要单独的克隆。子模块文件夹是它自己的世界。只需编辑、提交、分支,并将其推向您内心的喜悦 Git这样很好。:-) 顺便说一句,父存储库甚至会检测子模块文件夹内发生的更改,并提供您提交子模块的当前状态,作为父repo克隆的新官方参考点 重要提示: 在开始黑客攻击之前,确保在子模块文件夹中

这可能吗?假设我有父母和孩子。两者都是git的职责。子模块是父模块的子模块

我是否可以像常规存储库一样对父存储库中的Child版本进行编辑并提交和推送它们

或者我需要一个单独的克隆孩子的地方,我作出改变


谢谢。

您不需要单独的克隆。子模块文件夹是它自己的世界。只需编辑、提交、分支,并将其推向您内心的喜悦

Git这样很好。:-)

顺便说一句,父存储库甚至会检测子模块文件夹内发生的更改,并提供您提交子模块的当前状态,作为父repo克隆的新官方参考点

重要提示:

在开始黑客攻击之前,确保在子模块文件夹中执行git checkout master(或其他分支)操作

然后还要确保在提交子模块的更新状态时,
将这些提交推送到公共回购,或者至少在提交之后不重新设置子模块内部的历史基础或以其他方式更改历史记录,因为这样会损坏父模块对子模块历史记录的引用

小心踩。(帽子尖指向@以提醒。)

底线:

对。在子模块文件夹中进行开发是可能的,而且通常很方便,但并非没有风险。根据以下内容明智地选择您的开发模式

如果要在子模块内进行更改,应首先签出分支,进行更改,在子模块内发布更改,然后更新超级项目以引用新提交


据我所知,如果您正在处理添加子模块的分支,您可以编辑子模块并将其推回存储库。但是,如果您不是将Child添加到父级的开发人员,那么您使用的是分离的头,您需要签出单独版本的Child来进行更改,或者进行更改并导出修补程序(使用
git format patch
),以便其他人提交(通过
git am
)。

“master”很可能就是你要结帐的那家分行。但你说得很对+1.先结账。此外,在切换分支或在父级中执行其他工作之前,您希望确保有一个干净的子repo(已提交任何更改)。在父级repo中执行简单的日常(编辑、提交、拉、推)工作时,我没有遇到子模块中未提交更改的问题。不过,切换分支和子模块更新操作可能会有风险。说得好!在克隆人身上进行开发并不是一个坏主意,只是为了减少你的头意外脱落的几率。当然,您也可以使用钩子检查自己。另请参见