Swap git submodule with own fork

后端 未结 2 793
遇见更好的自我
遇见更好的自我 2021-01-30 13:24

I added a submodule to my git repo like this:

$ git submodule add git://github.com/user/some-library some-library

I\'ve decided I want to creat

相关标签:
2条回答
  • 2021-01-30 13:54

    The submodules are stored in .gitmodules:

    $ cat .gitmodules
    [submodule "ext/google-maps"]
        path = ext/google-maps
        url = git://git.naquadah.org/google-maps.git
    

    If you edit the url with a text editor, you need to run the following:

    $ git submodule sync
    

    This updates .git/config which contains a copy of this submodule list (you could also just edit the relevant [submodule] section of .git/config manually)

    There might be a way to do it with only git commands, although the submodule system seems a bit incomplete (e.g see the instructions to remove a submodule)

    0 讨论(0)
  • 2021-01-30 14:01

    I don’t know how long it is true, but certainly even in rather old git 1.8 submodules have remotes. So, you can do

    cd some-library   # this is entering the submodule
    git remote -v     # just to see what you have; I guess origin only
    git remote add myrepo git-URL-of-the-fork
    git checkout -b my_new_idea
    git push -u myrepo my_new_idea
    

    Now the submodule work with your fork instead of the original repo. You can do normal push, pull, rebase etc. When your pull request is merged, you can remove the remote with normal git remote remove myrepo. Of course, all other caveats about working with submodules apply (e.g., you have to commit the change of the submodule as a new commit in the supermodule).

    0 讨论(0)
提交回复
热议问题