replace git submodule protocol from git to http

后端 未结 2 1827
再見小時候
再見小時候 2021-01-30 22:42

I add a submodule from a git@... URL, to be able to develop in it. Now I want to deploy the app and replace the URL with an git://... one, so it doesn\'t need authentication to

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

    Editing the .gitmodules file (then committing, and pushing it) will be adequate for any new clones.

    Additionally, when a submodule is initialized (e.g. git submodule init …, git submodule update --init …, or git clone --recursive …, etc.) its URL is copied from the .gitmodules file to the repository’s .git/config file.

    So, if you have any existing “deployment clones” (the ones you now want to access the submodules through git://… URLs), you will also have to update the URL in their .git/config. You can use git submodule sync to automatically copy the submodule URLs from the current .gitmodules file to your .git/config file (i.e. once you have pulled the commit that updates the .gitmodules file).

    The submodule URLs in .git/config are not normally automatically updated because there are cases where you only want to override the URL in certain situations. Specifically, you will often want to use git@… URLs in your repository’s .git/config (so you can push over SSH), but put git://… URLs in .gitmodules (so that the general public does not need to do SSH-based authentication).

    0 讨论(0)
  • 2021-01-30 23:16

    I experienced similar problems, and after googling, I stumbled on this article: Relative URL for Git submodule. I found it's good a practice to follow as there's no need to manually change the .gitsubmodule file no matter who checks out it. It probably applies to your case as well.

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