Krótka odpowiedź na twoje pytanie brzmi: tak .
Nie zawahałbym się polecić Git (lub innego oprogramowania do kontroli wersji) do śledzenia plików konfiguracyjnych. Od tego czasu byłem bardziej produktywny (szczególnie przy konfigurowaniu nowych instalacji) i mam większe zaufanie do moich plików konfiguracyjnych. Z kontrolą wersji, mam zapis tego, co dokonano zmian i popełnić wiadomość zapewnia powód dlaczego zmiana została dokonana. Jeśli zmiana ma niezamierzone skutki uboczne, mogę łatwo przejrzeć dziennik / historię, aby zobaczyć, jakie zmiany spowodowały te skutki.
Osobiście uważałbym, aby nie śledzić wszystkich plików w /katalogu głównym. Lista ścieżek do zignorowania może stać się duża i niewygodna. Wolę przechowywać każdy logiczny zestaw plików we własnym repozytorium.
Ręcznie używam Git do śledzenia moich osobistych plików konfiguracyjnych / startowych, np. Konfiguracji Vima, funkcji Bash, aliasów itp. - podobnie do podejścia wymienionego w Jak śledzić $ HOME za pomocą git . Trzymam każdy zestaw plików we własnym repozytorium i używam dowiązań symbolicznych do katalogu domowego.
W przypadku plików konfiguracji systemu używam Git z Etckeeper do śledzenia plików w moim /etckatalogu.
Wady
Jedną z kwestii, na którą należy uważać, jest to, że śledzone pliki zawierają twarde linki . Gdy Git jest używany do sprawdzania plików lub modyfikowania drzewa roboczego w inny sposób, odłącza pliki, a następnie ponownie je tworzy . Pełniejsze wyjaśnienie znajdziesz w Git, Dotfiles i Hardlinks .
Etckeeper
Etckeeper może być używany do przechowywania pełnej historii zmian dokonanych w / etc. Śledzi metadane plików, których systemy kontroli wersji zwykle nie obsługują, ale jest to ważne dla/etc , na przykład dla uprawnień /etc/shadow.
Łączy się z menedżerami pakietów, takimi jak apt i yum, i (w domyślnej konfiguracji) uruchamia przed i po instalacji, aby wszystkie zmiany /etcbyły śledzone.
Jeśli pakiet zostanie zainstalowany lub usunięty, wszystkie niezatwierdzone zmiany w / etc zostaną zatwierdzone przed operacją pakietu, tak aby były dwa zatwierdzenia:
- „Zapisywanie niezatwierdzonych zmian w / etc przed uruchomieniem yum”
- „Zatwierdzanie zmian w / etc po uruchomieniu”
Użyłem go z dystrybucjami opartymi na Debianie i Red Hacie i wiem, że obsługuje zarządzanie pakietami Arch. Nie mogę powiedzieć, ile automatyzacji dodałoby to do systemu Gentoo, ale dostępny jest pakiet .
Obsługuje także wypychanie plików konfiguracyjnych do zdalnego repozytorium
(które oczywiście powinno być prywatne).
Konfiguracja
Po zainstalowaniu pakietu może być konieczne jego skonfigurowanie ( /etc/etckeeper/etckeeper.conf), np. W systemach Ubuntu domyślny system kontroli wersji zmienia się z Git na Bazar. Możesz także chcieć wyłączyć codzienne automatyczne zatwierdzanie .
Codzienne automatyczne zatwierdzanie
Zmiany mogą być automatycznie zatwierdzane przez codzienne zadanie CRON . Może to być denerwujące, ponieważ repozytorium może być zaśmiecone wieloma automatycznymi komunikatami zatwierdzania.
Odkomentuję odpowiednią linię w /etc/etckeeper/etckeeper.conf:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Zignoruj określone pliki
Edytować /etc/.gitignore aby określić pliki, które nie powinny być śledzone.
Pierwszy bieg
Po skonfigurowaniu uruchom następujące polecenia:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Jeśli masz bieżący katalog etc, możesz uruchamiać regularne gitpolecenia, np.
sudo git status
sudo git log