Voglio ignorare determinati file all'interno di un ramo senza dover fare affidamento su un file tracciato .gitignore
che verrà sovrascritto durante l'unione con altri rami.Esclusione file per un ramo
Ho seguito da vicino a Stack Overflow answer con the linked blog post, ma il mio repo non sembra essere il riconoscimento del specificato excludesfile
nel mio .git/config
. La documentazione Git (git-config
, gitignore
) non sembra mostrare come specificare e indirizzare un file di esclusione per un ramo specifico.
mio .git/config
assomiglia a questo:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
excludesfile = +/info/exclude
[branch "myspecialbranch"]
excludesfile = +/info/exclude_specialbranch
Il mio file .git/info/exclude
assomiglia a questo (per impostazione predefinita, non ho toccarlo):
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store
non ho un file .gitignore
nel mio "specialbranch".
Se cerco di ignorare un file, come info.php
, il mio file .git/info/exclude_specialbranch
assomiglia a questo:
info.php
... ma non ignora il file.
Se corro git status --ignored
, elenca solo il file .DS_Store
dal file exclude
predefinito.
Tuttavia, se aggiungo info.php
al mio file .git/info/exclude
:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store
info.php
ignora il file perfettamente.
Si noti che funziona ancora senza la linea excludesfile = +/info/exclude
in [core]
in .git/config
. Git sembra sapere dov'è il sistema exclude
senza che io debba dirlo.
Ho la sensazione che .git/config
non riconosce l'indirizzo del mio costume esclude di file:
excludesfile = +/info/exclude_specialbranch
... molto probabilmente a causa dell'uso di +
per descrivere il percorso della directory .git
.
Qual è il metodo corretto per indirizzare i file di esclusione personalizzati nelle versioni (più recenti) di Git?
Sono in esecuzione OSX 10.9.5 e Git versione 2.2.1.
Se vuoi maggiori informazioni sul work-around, sentiti libero di mandarmi un ping tramite @Palec nei commenti qui. – Palec
ha grazie - ho appena finito di leggere l'intero http://git-scm.com/docs/git-config (!) E mi chiedevo perché non ho visto un branch.excludesfile - controllerò il tuo lavoro- in giro. – goredwards
Ho controllato la cronologia delle pagine man di git-config e gitignore e non hanno mai menzionato 'branch. .excludesfile'. –
Palec