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 /etc
katalogu.
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 /etc
był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 git
polecenia, np.
sudo git status
sudo git log