Bijgehouden genegeerd en --assume-ongewijzigd voor samenvoegen

In mijn Git-repo is er een configuratiebestand dat ik anders zou willen houden dan de belangrijkste gedeelde repo (het moet bijgehouden blijven) zodat de wijzigingen niet worden ingevuld door andere ontwikkelaars. Het '-assume-unchanged' werkt goed om mijn wijzigingen lokaal te houden en tegelijkertijd de code in een andere repository te duwen. Het probleem wordt, wanneer ik de up-to-date code moet ophalen en ik aan het ophalen of samenvoegen van gedeelde repo naar mijn lokale, krijg ik de foutmelding:

error: Your local changes to the following files would be overwritten by merge:
    app/grails-app/conf/BuildConfig.groovy
Please, commit your changes or stash them before you can merge.
Aborting

De fout is logisch omdat ik het configuratiebestand anders heb dan het bestand in de gedeelde repo waar ik uit voeg. Maar hoe krijg ik nieuwe (meest recente) pull-code (samenvoegen) terwijl deze configuratie anders blijft. Ik zou het werk rond willen vermijden:

git update-index --no-assume-unchanged app/grails-app/conf/BuildConfig.groovy
git stash save "config file"

en dan na samenvoegen mijn gewijzigde configuratie terug krijgen:

git stash apply

Hoe deze extra stappen van stashing en indexering te voorkomen - ga je ervan uit dat ze ongewijzigd blijven? Is er een manier om alles behalve één bestand te trekken? Zijn er andere oplossingen voor het probleem beschreven?

Dank je

1
ja ru de

1 antwoord

Uit wat ik begrijp, wil je een bestand lokaal negeren (betekent dat andere ontwikkelaars het bestand nog steeds zullen volgen) Dus .gitignore zal je niet helpen, omdat de effecten globaal zijn.

Maar als u het bestand toevoegt aan .git/info/exclude , wordt het lokaal genegeerd.

Deze zin is van .gitignore :

Patronen die specifiek zijn voor een bepaalde repository, maar niet hoeven te worden gedeeld        met andere gerelateerde opslagplaatsen (bijvoorbeeld hulpbestanden die in de gegevensopslagruimte wonen   maar zijn specifiek voor de workflow van één gebruiker) moeten gaan naar het $ GIT_DIR/info/exclude-bestand

4
toegevoegd
Bedankt ogzd. Ik zou ook globaal kunnen negeren: git config --global core.excludesfile pathTo/.gitignore_global. De negering is echter niet van toepassing als het bestand wordt gevolgd door git, wat het geval is en zo moet het gebeuren. Meer in margotskapacs.com/2013/02/…
toegevoegd de auteur latvian, de bron
Geen probleem om code te pushen (het configuratiebestand is geïndexeerd -assume-unchanged), maar het probleem om te trekken of samen te voegen (het lijkt erop dat -assume-unchanged niet van toepassing is op samenvoegen/trekken). Ik hoop dat het logisch is.
toegevoegd de auteur latvian, de bron