* Managing one github repo with Gitignore and Submodules for two different remotes
@ 2025-02-06 14:10 USA Linux UAE
2025-02-06 22:23 ` brian m. carlson
0 siblings, 1 reply; 2+ messages in thread
From: USA Linux UAE @ 2025-02-06 14:10 UTC (permalink / raw)
To: git
Hi everyone,
I'm hoping to get some advice on managing a GitHub repository with a
slightly complex setup. We have a main repo that utilizes both a
.gitignore file and submodules. Our goal is to push this repo to two
different remote repositories (let's call them remote_A and remote_B),
but with a key difference:
remote_A should respect the .gitignore file as usual, excluding the
files and directories specified within it.
remote_B should effectively ignore the .gitignore file, and include
all files and directories, even those listed in .gitignore.
Essentially, we want the opposite behavior of .gitignore for remote_B.
Additionally, we need to ensure the submodules are handled correctly
for both remotes. Ideally, the submodule pointers should remain
consistent, regardless of which remote we're pushing to.
Could anyone offer advice on the best approach for this scenario? Are
there any recommended workflows or tools specifically designed for
this type of setup? Any insights regarding submodule management in
this context would be greatly appreciated.
Thanks in advance for your help!
Amjad
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Managing one github repo with Gitignore and Submodules for two different remotes
2025-02-06 14:10 Managing one github repo with Gitignore and Submodules for two different remotes USA Linux UAE
@ 2025-02-06 22:23 ` brian m. carlson
0 siblings, 0 replies; 2+ messages in thread
From: brian m. carlson @ 2025-02-06 22:23 UTC (permalink / raw)
To: USA Linux UAE; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 2012 bytes --]
On 2025-02-06 at 14:10:44, USA Linux UAE wrote:
> Hi everyone,
>
> I'm hoping to get some advice on managing a GitHub repository with a
> slightly complex setup. We have a main repo that utilizes both a
> .gitignore file and submodules. Our goal is to push this repo to two
> different remote repositories (let's call them remote_A and remote_B),
> but with a key difference:
>
> remote_A should respect the .gitignore file as usual, excluding the
> files and directories specified within it.
> remote_B should effectively ignore the .gitignore file, and include
> all files and directories, even those listed in .gitignore.
> Essentially, we want the opposite behavior of .gitignore for remote_B.
Unfortunately, there is no easy way to do what you want because you
essentially have two separate, independent, and diverging histories.
Git doesn't offer functionality to push only part of the history, and
`.gitignore` is honoured when files are added, not when pushing. Once
files have been added, `.gitignore` has no effect.
> Additionally, we need to ensure the submodules are handled correctly
> for both remotes. Ideally, the submodule pointers should remain
> consistent, regardless of which remote we're pushing to.
>
>
> Could anyone offer advice on the best approach for this scenario? Are
> there any recommended workflows or tools specifically designed for
> this type of setup? Any insights regarding submodule management in
> this context would be greatly appreciated.
The best way to do what you want is to put the extra files from the
second case in a separate submodule, which can be pushed to server B but
not server A. You may want to add a script to handle the case where
they do or don't exist and place them in the proper place via copy or
symlink if they're present. You'll want to ignore them in the main
repo, though, since you don't want them to be checked in accidentally.
--
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-02-06 22:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-06 14:10 Managing one github repo with Gitignore and Submodules for two different remotes USA Linux UAE
2025-02-06 22:23 ` brian m. carlson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.