'How to make git submodule files available in parent repo?
I have this directory structure:
--/home/user/main_git_project
--main_files.txt
--sub_git_project
--sub_files.txt
I added the submodule with git submodule add <url> sub_git_project
.
This created the /home/user/main_git_project/.gitmodules
file successfully.
However, now when I git push
the main git project and view the files at github the sub_git_project
directory appears to be some type of symlink or placeholder (it is empty). There is no way to view or list the files in sub_git_project
.
How can I add the sub_git_project
to the main_git_project
and have the sub_files be available?
Solution 1:[1]
I had a similar problem. Consider the following directory structure:
/home/<username>/<main-git-project>
.gitignore
.gitmodules
...<main-git-project> files
<submodule-git-project>
.gitignore
...<submodule-git-project> files
What I first attempted was to add the <submodule-git-project>
submodule to my <main-git-project>
, yielding the following .gitmodules
file:
[submodule "<submodule-git-project>"]
path = <submodule-git-project>
url = ./<submodule-git-project>
I committed the changes in the <main-git-project>
and pushed them to the remote GitHub
repository. What happened is that the <submodule-git-project>
folder was not clickable, thus not able to view any of its contents.
What I did to resolve the issue was to create a separate GitHub
repository for the <submodule-git-project>
, add the remote to the submodule, push the submodule code into this new repository, and edit the <main-git-project>
's .gitmodules
file so the url
now points to the remote submodule repository.
[submodule "<submodule-git-project>"]
path = <submodule-git-project>
url = https://github.com/<github-username>/<submodule-git-project>.git
Now the <main-git-project>
's GitHub
repository has a hyperlink-styled <submodule-git-project>
's folder that redirects you to the submodule's GitHub
repository.
This is a sample project I have in my account so you can better appreciate what I am talking about.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Alejandro Rodarte |