git - 更改 git 子模块,并保留更改

标签 git git-submodules

我已经将我的一个库的一个 git 子模块克隆到我正在处理的项目中。问题是,在克隆之后,我需要更改克隆的子模块中的一些行,但我不想将这些更改推送到原始存储库中

我希望这些更改保留在 super 项目中。这可能吗?我怎样才能做到这一点?

编辑:正如@GoZoner 所说,基本上是:

  1. git 克隆 foo;
  2. cd foo;
  3. git子模块初始化;
  4. git子模块更新;
  5. cd path/to/submodule;
  6. git checkout 大师;
  7. 对子模块进行更改
  8. git commit -am "Something";
  9. git push origin( super 项目);

然后,当我在另一台计算机上克隆 super 项目时(直到第 4 步),我希望将这些更改保存在 super 项目中

最佳答案

我认为您需要放宽“不提交子模块”限制。有两种选择:

  1. 将您的子模块更改提交到子模块分支。它是您团队的分支,也是您的团队放置子模块更改的地方。当有人克隆 super 项目并更新子模块时,他们将获得您团队分支的内容。
  2. 克隆子模块存储库“紧挨着”您的 super 项目存储库并初始化子模块以指向您的克隆。然后,当您提交对子模块的更改时,它们将提交给您的克隆。任何克隆 super 项目的人都会从您的子模块克隆中获取子模块内容。

否则,我看不到实现您愿望的方法。

关于git - 更改 git 子模块,并保留更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856138/

相关文章:

git - git pull 后在 gitk 中显示新修订

git pull 到一个分离的头

git - Gradle:我可以将一个根项目放在另一个根项目中吗?

git - 如何使用 git clone --recursive 加速/并行化 git 子模块的下载?

git - 包管理器与 Git 子模块/子树

git - 如何通过父项目中的 .gitattributes 强制子模块中的行结尾为 LF?

git filter-branch 重复提交

Gitolite 克隆失败

git - 带有 -a 的路径对 bash 函数没有意义

C++ 与 git 和 CMake : How to build submodules with specific parameters?