Re: Managing one github repo with Gitignore and Submodules for two different remotes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux