Saya telah selama bertahun-tahun $HOME
memeriksa seluruh direktori saya ke subversi. Ini sudah termasuk semua dotfile dan profil aplikasi saya, banyak skrip, alat, dan retasan, struktur direktori home dasar pilihan saya, tidak sedikit proyek aneh dan gudang data acak. Ini adalah hal yang baik. Sementara itu berlangsung.
Tapi itu tidak terkendali. Checkout dasar adalah sama di lusinan sistem, tetapi tidak semua hal yang sesuai untuk semua mesin saya. Bahkan tidak semua bermain dengan baik dengan distro yang berbeda.
Saya sedang dalam proses membersihkan rumah - memisahkan data di tempat yang seharusnya, memisahkan beberapa skrip sebagai proyek terpisah, memperbaiki beberapa tautan yang rusak pada hal-hal yang seharusnya otomatis, dll.
Maksud saya adalah untuk mengganti subversion
dengan git
untuk checkout tingkat atas $HOME
, tetapi saya ingin membagi ini ke hal-hal yang saya ingin miliki di SEMUA sistem saya, yang berarti dotfile, beberapa direktori dan beberapa skrip kustom dasar.
Dalam membaca online, banyak orang tampaknya melakukan ini menggunakan pendekatan symlink: klon ke dalam subdirektori kemudian buat symlink dari $HOME
dalam repositori. Setelah memiliki $HOME
kontrol versi lengkap di bawah saya selama lebih dari satu dekade, saya tidak suka ide pendekatan ini dan saya tidak tahu mengapa orang-orang tampak begitu benci dengan metode checkout langsung. Apakah ada jebakan yang perlu saya ketahui tentang spesifik git
sebagai checkout tingkat atas $HOME
?
PS Sebagian sebagai latihan dalam pengkodean yang baik, saya juga berencana membuat checkout root saya publik di github. Menakutkan berapa banyak informasi sensitif keamanan yang saya boleh kumpulkan dalam file yang seharusnya bisa dibagikan tanpa berpikir dua kali! Kata sandi WiFi, kunci RSA tanpa frasa sandi, dll. Eeek!
git
akan mengubah izin file Anda 644
setelah checkout yang buruk untuk hal-hal seperti kunci ssh pribadi. namun etckeeper
merupakan solusi untuk menggunakan git dengan izin untuk / etc /
.zshrc
, .vimrc
dan hal-hal serupa tanpa harus membersihkan terlebih dahulu!