2012-01-03 10 views
8

Ho notato che quando si esegue il commit o il checkout di file utilizzando Git in un ambiente Windows, gli attributi del file non vengono mantenuti (ad esempio nascosti o di sola lettura). Se eseguo il commit di un file nascosto e poi lo controllo su un altro computer, il file non è più nascosto. È possibile fare in modo che Git riconosca gli attributi dei file di Windows?Git su Windows e attributi di file

Grazie.

risposta

9

No. Git non tiene traccia delle autorizzazioni UNIX complete, ma ricorda solo il bit eseguibile per comodità. Per quanto riguarda il motivo - si tratta di un sistema di controllo della versione, progettato per tracciare principalmente il codice sorgente. Ciò rende assolutamente inutile tale caratteristica (per non parlare dell'attributo 'nascosto' è abbastanza inutile anche da solo).

+0

Ok, grazie per la risposta chiara. Ho pochi file nascosti e di sola lettura nel mio progetto, ma li cambierò a mano se necessario. – StockBreak

+0

Anche questa funzione mi piacerebbe, non è "assolutamente inutile". Ad esempio, l'ambiente di sviluppo del gioco Unity crea un file ".meta" sidecar per la gestione del suo database di scene. Questi file devono essere revisionati, ma nessun essere umano ha mai bisogno di vederli. – yoyo

+0

Lo troverei utile anche Sviluppo con la toolchain node/grunt/bower in VisualStudio e impostando la cartella node_modules e bower_components su hidden, impedendo a VS di indicizzare e cercare (e persino di mostrare) quelli in explorer di soluzione, che è abbastanza importante per uno sviluppo fluido. – Daniel

9

È possibile utilizzare il gancio sul lato client successivo al checkout per apportare le modifiche necessarie. Nel tuo caso, lo utilizzeresti per eseguire uno script che imposta gli attributi del file di Windows che desideri.

ProGit descrive questo in termini generali nel paragrafo "Altre Ganci client":

Customizing Git Hooks

Inoltre, vedere githooks pagina man.

+0

Grazie, esaminerò il libro! – StockBreak

+0

@wadesworld Puoi fornire un esempio sul hook su windows? – checksum