2012-01-03 7 views
8

Zauważyłem, że gdy pliki commit lub checkout używasz Git w środowisku Windows, atrybuty plików nie są zachowywane (na przykład ukryte lub tylko do odczytu). Jeśli zatwierdzę ukryty plik, a następnie sprawdzę go na innym komputerze, plik nie jest już ukryty. Czy Git rozpoznaje atrybuty plików systemu Windows?Git na Windows i atrybuty plików

Dzięki.

Odpowiedz

9

Nie. Git nie śledzi pełnych uprawnień UNIX albo po prostu zapamiętuje wykonywalny bit dla wygody. Co do tego - jest to system kontroli wersji, zaprojektowany do śledzenia głównie kodu źródłowego. To, co czyni tę funkcję wręcz bezużyteczną (nie wspominając już o ukrytym atrybucie, jest samo w sobie bezużyteczne).

+0

OK, dziękuję za jasną odpowiedź. W moim projekcie mam kilka plików ukrytych i tylko do odczytu, ale w razie potrzeby zmienię je ręcznie. – StockBreak

+0

Chciałbym również tę funkcję, nie jest "wręcz bezużyteczna". Na przykład środowisko tworzenia gier Unity tworzy plik ".meta" z bocznym wózkiem do zarządzania bazą danych sceny. Pliki te muszą być poprawione, ale żaden człowiek nigdy nie musi ich widzieć. – yoyo

+0

Byłbym też przydatny. Rozwijam się za pomocą węzła toolchain node/bower pod VisualStudio i ustawiając folder node_modules i bower_components na ukryty, zatrzymuję VS od indeksowania i wyszukiwania (a nawet pokazywania) tych w eksploratorze rozwiązań, co jest bardzo ważne dla płynnego rozwoju. – Daniel

9

Możesz użyć haka po stronie klienta po dokonaniu wszelkich zmian, które musisz wprowadzić. W twoim przypadku użyłbyś go do uruchomienia skryptu, który ustawi atrybuty plików Windows, które chcesz.

ProGit opisuje to w sposób ogólny w "Inne Hooks klient" ustępu:

Customizing Git Hooks

również zobaczyć githooks stronę man.

+0

Dzięki, zajrzę do książki! – StockBreak

+0

@wadesworld Czy możesz podać przykład na haku w systemie Windows? – checksum