Hi all,
I'm pretty sure this is a FAQ, but articles I found on the Internet were
either mere "recipes" (i.e. tell you how, but don't explain why), or
bogged down in so many details that I was never sure how to proceed from
there.
Basic situation:
There's a master repository (Github or corporate or whatever), and I
want to set up a local mirror so that I can create clones without having
to access the original upstream.
I'd like to set the mirror up so that creating a clone from it will
automatically set up things to "just work": I.e. branches will track the
mirror, not upstream, possibly other settings that I'm not aware of.
I gather that local clones are fast because hardlinked - is that correct?
Is that correct on Windows? (I can't easily avoid Windows.)
Ramification 1:
I'm not sure how best to prepare patches for push-to-upstream.
Is there value in collecting them locally into a push-to-upstream repo,
or is it better to just push from each local clone individually?
Ramification 2:
Some of the repos I work with use submodules. Sometimes they use
submodules that I'm not aware of. Or a submodule was used historically,
and git bisect breaks/misbehaves because it can't get the submodule in
offline mode.
Is there a way to get these, without writing a script that recurses
through all versions of .gitmodules?
I'm seeing the --recurse-submodules option for git fetch, so this might
(or might not) be the Right Thing.
Any thoughts welcome, thanks!
Regards,
Jo