Jadi saya menggunakan Git sebagian besar untuk tujuan pengembangan, tetapi saya baru sadar bahwa saya bisa menggunakannya untuk menyimpan versi file pengaturan yang saya miliki di instalasi Ubuntu saya.
Pengaturan yang saya usulkan adalah:
git init
sebuah repo di/
Tambahkan
.gitignore
at at/
yang mengabaikan file apa pun kecuali pengaturan spesifik yang ingin saya lacak.Misalnya,
.gitignore
bisa mengandung ( sumber ):## Ignore everything... * ## Except... !/etc/default/tlp !/etc/crontab
Setiap kali saya mengubah pengaturan level rendah ini, saya bisa melacaknya.
Apakah ada yang salah dengan pengaturan ini? Apakah kernel selalu perlu /
hanya memiliki folder tertentu? Apakah ini akan mengacaukan fungsi aplikasi apa pun?
~
file pengaturan direktori home Anda daripada/
file/etc/crontab
di laptop pribadi saya jelas milik saya, tapi saya mengerti maksud Anda.etckeeper
dan buat cadangan.Jawaban:
Jawaban untuk kedua pertanyaan Anda adalah tidak, Anda dapat membuat direktori yang Anda inginkan di
/
. satu-satunya hal yang bisa terjadi adalah beberapa masalah izin dengan beberapa jalur spasial kurasa.Namun lebih baik menyimpan
.git
direktori di tempat lain, sesuatu seperti:Baca di sini .
sumber
Sebenarnya, Anda mungkin ingin kontrol versi file-file konfigurasi di
/etc/
(Anda tidak peduli tentang entri dari direktori root/
, terutama direktori sepertiproc
atauusr
ataubin
di/
) sehingga Anda mungkin ingin menginstaletckeeper
paketDan Anda juga dapat mengontrol versi beberapa subdirektori yang dipilih (seperti
/usr/share/applications/
yang Anda sebutkan).Namun, jangan main-main dengan sistem manajemen paket Ubuntu . Mungkin Anda sebaiknya mencadangkan daftar paket yang diinstal saat ini.
sumber
/usr/share/applications
karena saya kadang-kadang mengacaukannya.Memiliki git repo dalam / berfungsi dengan baik, kecuali bahwa itu membuat sulit untuk melihat ketika Anda memiliki git repo tingkat rendah dengan masalah karena akan menjawab untuk mereka semua.
Catatan: Ini kurang berhasil dan mungkin lebih bermanfaat untuk menggunakan 'debsums'
Yang akan memungkinkan Anda untuk dengan cepat mendeteksi (sebagian besar) perubahan dalam binari atau dalam file konfigurasi.
Sebagai contoh dari paket yang diinstal di sini adalah yang berbeda dari paket hulu.
Dan Anda bisa mendapatkan daftar file konfigurasi yang diubah dengan:
Perhatikan bagaimana chromium-browser dikemas secara tidak benar dan dan memiliki file yang tercantum dalam daftar file paket yang tidak ada.
Ini menggunakan data dpkg dan menghindari direktori / alur kerja /.git yang besar.
sumber
/home/$USER
maka.git
in/
akan menjawab untuk setiap perintah git yang diberikan untuk repo itu/home$USER
daripada untuk [.gir
file] dalam/home/$USER
....git
direktori yang lebih tinggi di pohon, Anda cukupcd
ke sana, atau subdirektori yang tidak memiliki.git
folder (direktori normal)Jadi saya telah menjelajahi jawaban lain dan saya menemukan prosedur yang cocok untuk saya:
Buat
.gitignore
di/
. Ini jauh lebih rumit daripada yang saya kira, karena cara Git menangani file yang masuk daftar putih di subfolder. Saya menggunakan ini dan ini Link untuk membantu saya.Pergi ke
/
dan jalankangit init .
Sejauh ini, saya tidak dapat menyimpan.git/
folder di direktori lain menggunakan tautan yang disebutkan oleh @Ravexina .Jalankan
git add .
dangit status
. Anda harus mendapatkan daftar semua file pengaturan yang dilacak Git.Berkomitmen dengan
git commit -m "Initial settings files"
.Anda dapat melacak perubahan dengan
git log -p -- path/to/file
ataugitk path/to/file
. Lebih banyak diskusi tentang ini di sini .sumber
Jika Anda akan menyimpan hal-hal sensitif (seperti
/etc/shadow
) di repo git, Anda harus memastikan itu tidak dapat dibaca oleh semua pengguna, karena secara default objek akan memiliki izin444
dan direktori akan memiliki izin0755
. Anda dapat mengubah izin.git
untuk700
atau memasukkannya ke dalam/root
Masalah lain adalah bahwa git tidak menyimpan izin file seperti sistem file, dan itu tidak menyimpan atribut yang diperluas. Untuk file, git hanya menyimpan apakah file itu dapat dieksekusi. Jadi jika Anda ingin mengembalikan file yang dihapus, pemilik dan grupnya akan menjadi root (jika Anda melakukannya sebagai root), dan izinnya adalah
644
atau755
. Mungkin bermasalah untuk file konfigurasi layanan yang pemiliknya tidak di-root.sumber