我已经将我的一个库的一个 git 子模块克隆到我正在处理的项目中。问题是,在克隆之后,我需要更改克隆的子模块中的一些行,但我不想将这些更改推送到原始存储库中。
我希望这些更改保留在 super 项目中。这可能吗?我怎样才能做到这一点?
编辑:正如@GoZoner 所说,基本上是:
- git 克隆 foo;
- cd foo;
- git子模块初始化;
- git子模块更新;
- cd path/to/submodule;
- git checkout 大师;
- 对子模块进行更改
- git commit -am "Something";
- git push origin( super 项目);
然后,当我在另一台计算机上克隆 super 项目时(直到第 4 步),我希望将这些更改保存在 super 项目中。
最佳答案
我认为您需要放宽“不提交子模块”限制。有两种选择:
- 将您的子模块更改提交到子模块分支。它是您团队的分支,也是您的团队放置子模块更改的地方。当有人克隆 super 项目并更新子模块时,他们将获得您团队分支的内容。
- 克隆子模块存储库“紧挨着”您的 super 项目存储库并初始化子模块以指向您的克隆。然后,当您提交对子模块的更改时,它们将提交给您的克隆。任何克隆 super 项目的人都会从您的子模块克隆中获取子模块内容。
否则,我看不到实现您愿望的方法。
关于git - 更改 git 子模块,并保留更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856138/