Apporta una modifica che viene ignorata da future unioni

4

Ho un repository git e vorrei creare un ramo "debug".

Nel ramo "debug", vorrei aggiungere una riga:

debug = true;

Ma voglio essere sicuro che qualsiasi fusione al master ignori questa modifica. C'è un modo per impostarlo in modo che non mi imponga di gestire manualmente tutte le future unioni?

    
posta sharoz 17.02.2014 - 21:11
fonte

1 risposta

3

Crea il ramo (chiamiamolo 'debug'), apporta la modifica e esegui il commit su quel ramo.

git checkout -b debug
vim config # add debug = true
git commit config -m "Turn on debug mode"

Quindi controlla il master e avvia il processo di fusione

git checkout master
git merge --no-ff --no-commit debug

Questo dirà a git di fondersi, creare un vero e proprio commit di merge invece di un forward-forwarding, e mettere in scena il commit ma non ancora impegnarlo. Quindi vai nel file e rimuovi la linea che hai aggiunto sul ramo e infine effettua il commit.

vim config # remove debug=true
git commit

Se esegui gitk master debug , dovresti vedere che il debug è stato fuso in master, ma il master non ha la modifica di debug=true . D'ora in poi, quando unirai il ramo di debug al master, git non tenterà di reincorporare il debug=true perché questo è già stato "unito".

Come altri commentatori hanno affermato, i file di configurazione come questo non dovrebbero essere controllati nel controllo di versione. Il modo più comune per evitare ciò è di fare in modo che l'applicazione controlli un file di configurazione locale che si trova all'esterno della directory di origine o in un file che si trova in .gitignore. Ma se questo non è possibile, le istruzioni sopra funzioneranno.

    
risposta data 18.02.2014 - 21:12
fonte

Leggi altre domande sui tag