Ten krótki skrypt może być użyty do osiągnięcia tego, co chcesz, pod warunkiem, że masz poprawnie skonfigurowany git jako zwykłego użytkownika. Akceptuje wszelkie argumenty git commit
robi z wyjątkiem --author
(które automatycznie generuje) i automatycznie monituje o hasło, więc nie musisz go uruchamiać sudo
:
#!/bin/bash
name=`git config --get user.name`
email=`git config --get user.email`
author="${name} <${email}>"
sudo git commit --author "$author" $@
Wyciąga twoje imię i e-mail z konfiguracji git użytkownika, tworzy z tego informacje o autorze, a następnie wywołuje git, aby utworzyć zatwierdzenie. Możesz zastąpić commit
dla każdego innego polecenia podrzędnego git, które generuje commits i akceptuje --author
argument.
Alternatywnie sklonuj repozytorium jako zwykłego użytkownika (za pomocą klonu SSH, więc dla twojego /var/www
przykład, byłoby git clone root@localhost:/var/www
), dokonaj swoich zmian jako zwykły użytkownik, a następnie popchnij je do głównego repozytorium. Daje to nieco większą swobodę w zarządzaniu kopią, jak chcesz, ale wymaga, aby ludzie mogli zalogować się jako root przez ssh na interfejsie loopback.
Pamiętaj jednak, że chcesz być ostrożny z bezpośrednim używaniem git etckeeper
, jeśli dodasz lub usuniesz pliki /etc/.etckeeper
musi być poprawnie zaktualizowany. Dzieje się tak automatycznie, jeśli to zrobisz etckeeper commit
(który niestety nie obsługuje arbitralnego zatwierdzania zatwierdzeń), ale nie, jeśli to zrobisz git commit
.