Pull only git-repo inside a repo

Ik zou in een (sub)repo een andere repo zichtbaar willen hebben die ik enkel kan pullen maar niet kan pushen, want aan de sub-repo mogen geen wijzigingen gepushed worden.

zijn volgende stappen correct

  1. naar de main-repo gaan
    cd /path/to/main-repo

  2. de submodule toevoegen en initieren
    git submodule add https://github.com/user/repo.git path/to/submodule
    git submodule update --init --recursive

  3. voorkomen dat de submodule pushed
    cd path/to/submodule
    git remote set-url --push origin no_push

  4. kijken of ik kan pullen
    git pull origin main

graag jullie input :blush:

Submodules resulteren quasi altijd in kopzorgen :slight_smile: Zelfs als je het zelf onder controle hebt is er wel iemand in je team die niet mee is. Als je je toch in het mijnenveld wil wagen, lees je dan in in de mogelijke traps.

Daarnaast is de no_push louter een lokale configuratie die iedere gebruiker vrijblijvend in of uit kan schakelen. Je dwingt er niets mee af. Als je de beheerder bent van de submodule ben je beter om op de remote de rechten te beheren dan erop te vertrouwen dat iedereen lokaal zijn vlaggetje gaat instellen.

Ik ken je case niet precies maar wat je beschrijft lijkt op een dependency in je project. Je spendeert dan beter tijd om dat als package of artifact ergens te gaan hosten. Of je kan gewoon een dependency naar je git remote leggen (zie links voor npm, poetry, composer, … afhankelijk van wat je gebruikt). In geval van een private repo zit je wel met credentials die tot in de productie build pipeline moeten geraken, maar dat is op te lossen met env variabelen en secrets in je CI/CD pipeline. Makkelijkste is dus publishen van je package als de context dat toelaat.

2 likes

Dit, 100%!!!
Ik zou een aparte package voorzien die je apart onderhoudt en als dependency in je main project binnen trekt

1 like