git-cache-meta
disebutkan dalam pertanyaan SO "git - bagaimana memulihkan izin file menurut git file seharusnya?" (dan FAQ git) adalah pendekatan yang lebih lugas.
Idenya adalah untuk menyimpan dalam .git_cache_meta
mengajukan izin dari file dan direktori.
Ini adalah file terpisah yang tidak diversi langsung di repo Git.
Itu sebabnya penggunaannya adalah:
$ git bundle create mybundle.bdl master; git-cache-meta --store
$ scp mybundle.bdl .git_cache_meta machine2:
#then on machine2:
$ git init; git pull mybundle.bdl master; git-cache-meta --apply
Jadi kamu:
- bundel repo Anda dan simpan izin file terkait.
- salin kedua file tersebut di server jarak jauh
- pulihkan repo di sana, dan terapkan izin
Git adalah Sistem Kontrol Versi, dibuat untuk pengembangan perangkat lunak, jadi dari keseluruhan rangkaian mode dan izin, Git hanya menyimpan bit yang dapat dieksekusi (untuk file biasa) dan bit symlink. Jika Anda ingin menyimpan izin penuh, Anda memerlukan alat pihak ketiga, seperti git-cache-meta
(disebutkan oleh VonC), atau Metastore (digunakan oleh etckeeper). Atau Anda dapat menggunakan IsiSetup, yang mana IIRC menggunakan git sebagai backend.
Lihat halaman Antarmuka, antarmuka, dan alat di Git Wiki.