2012-07-30 3 views
13

Non riesco a farlo funzionare.Come ottenere Git su Windows per ignorare i collegamenti simbolici

Ho clonato un repository che ha un file fittizio (denominato src): /path/src.

Su Windows, ho creato un collegamento simbolico: mklink -d /path/src /otherplace/src (ma ovviamente ho dovuto cancellare prima il file src dummy).
Sia mia .gitignore e .git/info/exclude devo

/path/src/ 
/path/src 
path/src/ 
path/src 

e ho provato

git ls-files -s | gawk '/120000/{print $4}' 

git update-index path/src/ --assume-unchanged 

ma ho ancora ottenere:

error: readlink("path/src"): Function not implemented 
error: unable to index file path/src 
fatal: updating files failed 

Ho provato tutti theseothersuggestions. E anche this doesn't work.
Qualche idea?

+0

hai risolto il problema? – Jus12

+0

@ Jus12, sinceramente non ricordo se l'ho mai risolto. È stato qualche tempo fa, e non ricordo quale progetto fosse. –

+1

Non ho la risposta, ma so che l'impostazione 'git config core.symlinks true' invece di' git config core.symlinks false' ha eliminato l'errore Funzione non implementata per me. Di conseguenza, i collegamenti simbolici che ho creato utilizzando mklink in Windows sono stati inseriti senza errori, ma al momento della clonazione del progetto, i collegamenti simbolici diventano file di testo che indicano dove si trovano i file originali anziché funzionare come collegamento simbolico reale. –

risposta

3

si può fare un checkout ignorare questo singolo file in questo modo:

git checkout HEAD . --no path/src 

Il file .gitignore funziona solo per l'aggiunta di roba per l'indice. Anche le modifiche ai file commessi prima di aggiungerli allo .gitignore non vengono ignorate.

+0

Non sembra essere un comando per "git checkout HEAD. --no" "error: Opzione ambiguo: no" (Git 1.9.4) – JoeyC

+1

Sì @JoeyC è successo proprio ora quando l'ho provato. Cercherà un'altra soluzione. –