I have a working git repository containing several submodules (obtained by cloning different repositories).
Now, I want to copy the whole repository (with all the submodules) to a bare git repo on a different machine by either using pushing or cloning. I'm fine loosing the history of the submodules (I'm just interested in keeping their content).
Is this possible ? In my attempts, in the cloned repository the submodule directory is empty.
P.S. I know that this is not the correct workflow (see creating a public repo with submodules), however there is no possibility of updating the original submodule.
You can clone the git repo with all submodule using recursive
as follow:
git clone --recursive your-repo-url
on the other hand if you have already cloned, you can use:
git submodule init
git submodule update
You won't lose any history in your submodule
in the cloned repository the submodule directory is empty.
If, by "cloned repo", you are referring to the bare repo, it is normal: a bare repo is always empty.
If you are alluding to a clone of the bare repo, you need to add:
git submodule update --init --recursive
That way, you will see the content of those submodules.
Remember, a submodule is:
- a declaration in a
.gitmodules
file
- a gitlink entry in the index (special entry recording the SHA1 of that submodule)
So all you need to do is clone that repo (even with a --recursive
option), and the submodules will follow.