How to change a git submodule to point to a subfolder?

后端 未结 3 957
再見小時候
再見小時候 2020-12-04 16:20

Skimming through the SubModule tutorial, I created a submodule out of the boto project. Then, I discovered that I actually need only a subset of this project - specifically,

相关标签:
3条回答
  • 2020-12-04 16:40

    What you want to do is create a branch in the submodule and move the folder up and delete what you don't need. You can then manage that branch instead. If you want to push up your changes, you should be able to back merge first. Git will know that you moved the files and do the merge successfully.

    Hope this helps.

    0 讨论(0)
  • 2020-12-04 16:46

    You cannot clone only a part of a repository. This is because git treats the repository as a whole object : when you get it, you get it all.

    So, the solution here would be to fetch the submodule in another directory, then use a symlink to achieve your goal.

    0 讨论(0)
  • 2020-12-04 16:48

    I'm afraid the URL for submodules always just points to the repository - you can't specify that you only want a subfolder of a repository, in the same way that git doesn't support "narrow clones" in general.

    If you can't live with having the whole repository as a submodule, you could always create a new repository that's cloned from boto and then set up a cron job to:

    1. git fetch that repository into a directory
    2. Use git filter-branch to update a branch where the subdirectory is at the top level.
    3. Add that branch of the repository as the submodule. However, that's all a bit fiddly and my preference would just be to live with having the whole repository as a submodule.
    0 讨论(0)
提交回复
热议问题