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 the submodule's repo from Capistrano. Is editing the URL in .gitmodules totally enough to accomplish this?
相关问题
- Why does recursive submodule update from github fa
- Extended message for commit via Visual Studio Code
- Emacs shell: save commit message
- Can I organize Git submodules in a flat hierarchy?
- Upload file > 25 MB on Github
相关文章
- 请教Git如何克隆本地库?
- GitHub:Enterprise post-receive hook
- Git Clone Fails: Server Certificate Verification F
- SSIS solution on GIT?
- Is there a version control system abstraction for
- ssh: Could not resolve hostname git: Name or servi
- Cannot commit changes with gitextensions
- git: retry if http request failed
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 …
, orgit 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 usegit 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 usegit@…
URLs in your repository’s.git/config
(so you can push over SSH), but putgit://…
URLs in.gitmodules
(so that the general public does not need to do SSH-based authentication).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.