如何提交对存储库但不是子模块的更改

时间:2013-10-22 04:42:36

标签: git git-submodules pelican

我正在使用pelican制作博客。我希望在项目中包含现有的pelican-plugins,而无需将代码复制到我的存储库中。例如:

/my_project
    pelicanconf.py
    /plugins        # Just a reference to https://github.com/getpelican/pelican-plugins
        assets
        ...

我知道这可以通过git submodule进行,如下所示:

git submodule add https://github.com/getpelican/pelican-plugins.git plugins

但是,如果我决定创建自己的插件或来自其他地方的用户插件,我无法将它们存储在plugins中,因为它现在是一个子模块。

如何在不将子文件提交到该子模块的情况下提交对子模块的文件夹进行更改?我应该只做一个pelican-plugins的分支并提交给它吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,对我有用的最佳解决方案是:

  1. 分叉,或以其他方式为更改/添加创建存储库
  2. 使用git submodule将新存储库作为子文件夹添加到我的项目中
  3. 在子模块中进行更改,或对创建的存储库进行更改,然后更新子模块。
  4. 如果你不像我想要跟踪你想要的更改,ton's solution使用Subtree可以正常工作;最大的区别是存储库中的所有提交都将包含在存储库的历史记录中。

答案 1 :(得分:-1)

也许,你应该使用子树而不是子模块。

阅读以下文章。

Git - Subtree Merging

Alternatives To Git Submodule: Git Subtree | Atlassian Blogs