คำตอบสั้น ๆ กับคำถามของคุณคือใช่
ฉันจะไม่ลังเลที่จะแนะนำ Git (หรือซอฟต์แวร์ควบคุมเวอร์ชันอื่น) เพื่อติดตามไฟล์กำหนดค่า ตั้งแต่ทำเช่นนั้นฉันมีประสิทธิภาพมากขึ้น (โดยเฉพาะอย่างยิ่งสำหรับการกำหนดค่าการติดตั้งใหม่) และมีความมั่นใจมากขึ้นในไฟล์กำหนดค่าของฉัน ด้วยการควบคุมเวอร์ชันฉันมีบันทึกว่ามีการเปลี่ยนแปลงอะไรบ้างและข้อความยืนยันส่งให้เหตุผลว่าทำไมการเปลี่ยนแปลงจึงเกิดขึ้น หากการเปลี่ยนแปลงมีผลข้างเคียงที่ไม่ได้ตั้งใจฉันสามารถตรวจสอบบันทึก / ประวัติเพื่อดูว่าการเปลี่ยนแปลงใดทำให้เกิดผลกระทบ
โดยส่วนตัวฉันจะระวังการติดตามไฟล์ทั้งหมดภายใต้/
ไดเรกทอรีราก รายการเส้นทางที่จะเพิกเฉยอาจมีขนาดใหญ่และเทอะทะ ฉันชอบเก็บไฟล์แต่ละชุดไว้ในที่เก็บของตัวเอง
ฉันเองใช้ Git เพื่อติดตามของฉันส่วนบุคคลกำหนดค่า / เริ่มต้นขึ้นไฟล์เช่นการกำหนดค่าที่เป็นกลุ่มฟังก์ชั่นทุบตีนามแฝง ฯลฯ - คล้ายกับวิธีการที่ระบุไว้ในวิธีการติดตาม $ HOME กับคอมไพล์ ฉันเก็บไฟล์แต่ละชุดไว้ในที่เก็บของตัวเองและใช้ลิงก์สัญลักษณ์ไปที่โฮมไดเร็กตอรี่
สำหรับไฟล์การกำหนดค่าระบบฉันใช้ Git กับEtckeeperเพื่อติดตามไฟล์ใน/etc
ไดเรกทอรีของฉัน
ข้อเสีย
ปัญหาหนึ่งที่ต้องระวังคือถ้าไฟล์ที่มีการติดตามรวมถึงการเชื่อมโยงอย่างหนัก เมื่อ Git จะใช้ในการตรวจสอบไฟล์หรือมิฉะนั้น tree แก้ไขการทำงานก็ยกเลิกการลิงก์ไฟล์แล้วเปลี่ยนให้เป็น ดูGit, Dotfiles และ Hardlinksสำหรับคำอธิบายที่สมบูรณ์กว่า
Etckeeper
Etckeeper สามารถใช้เก็บประวัติการเปลี่ยนแปลงที่เกิดขึ้นกับ / etc จะติดตามข้อมูลเมตาของแฟ้มที่ระบบควบคุมการแก้ไขไม่ปกติสนับสนุน แต่นั่นเป็นสิ่งสำคัญสำหรับเช่นสิทธิ์ของ/etc
/etc/shadow
มันเชื่อมโยงกับผู้จัดการแพคเกจเช่น apt และ yum และ (ในการกำหนดค่าเริ่มต้น) เรียกใช้ก่อนและหลังการติดตั้งเพื่อ/etc
ติดตามการเปลี่ยนแปลงทั้งหมด
หากมีการติดตั้งหรือลบแพ็คเกจการเปลี่ยนแปลงที่ไม่มีการผูกมัดทั้งหมดใน / etc จะถูกส่งต่อก่อนการดำเนินการแพ็กเกจเพื่อให้มีการคอมมิชชันสองรายการ:
- “ การบันทึกการเปลี่ยนแปลงแบบไม่มีข้อผูกมัดใน / etc ก่อนที่จะเรียกใช้ yum”
- “ คอมมิชชันการเปลี่ยนแปลงใน / etc หลังจากทำงานยำ "
ฉันใช้กับการแจกแจงแบบ Debian และ Red Hat และฉันรู้ว่ามันรองรับการจัดการแพ็คเกจ Arch ฉันไม่สามารถบอกว่าระบบอัตโนมัติมากก็จะเพิ่มไปยังระบบ Gentoo แต่แพคเกจใช้ได้สำหรับมัน
นอกจากนี้ยังรองรับการพุชไฟล์การกำหนดค่าไปยังพื้นที่เก็บข้อมูลระยะไกล
(ซึ่งแน่นอนว่าควรเป็นแบบส่วนตัว)
องค์ประกอบ
หลังจากติดตั้งแพ็คเกจคุณอาจต้องกำหนดค่า ( /etc/etckeeper/etckeeper.conf
) เช่นในระบบ Ubuntu ระบบควบคุมเวอร์ชันเริ่มต้นจะเปลี่ยนจาก Git เป็น Bazaar คุณอาจต้องการที่จะปิดการใช้งานอัตโนมัติกระทำในชีวิตประจำวัน
การเติมข้อความอัตโนมัติรายวัน
การเปลี่ยนแปลงสามารถกระทำได้โดยอัตโนมัติโดยงาน cron ในชีวิตประจำวัน สิ่งนี้อาจสร้างความรำคาญเนื่องจากที่เก็บสามารถรกด้วยข้อความการส่งข้อความอัตโนมัติหลายรายการ
ฉันไม่ใส่เครื่องหมายบรรทัดที่เหมาะสมใน/etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
ละเว้นไฟล์บางไฟล์
แก้ไข/etc/.gitignore
เพื่อระบุไฟล์ใด ๆ ที่ไม่ควรติดตาม
วิ่งครั้งแรก
หลังจากกำหนดค่าให้รันคำสั่งต่อไปนี้:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
หากไดเรกทอรีปัจจุบันของคุณคือetc
คุณสามารถเรียกใช้git
คำสั่งปกติเช่น
sudo git status
sudo git log