เมื่อคุณสดชื่นกับ Git (และ DVCS โดยทั่วไป) และคุณเริ่มสำรวจการเปลี่ยนแปลงประวัติศาสตร์ - เขียนใหม่คุณจะปลอดภัยถ้าที่เก็บเป็นโลคัลเท่านั้น แต่คุณอาจพบปัญหาหากคุณทำงานกับรีโมทและพยายาม ผลักดันการเปลี่ยนแปลงดังกล่าว
คุณลักษณะที่ฉันคาดหวังคือความสามารถในการเปิดใช้งาน "เซฟโหมด" ซึ่งโดยทั่วไปแล้วจะห้ามไม่ให้ฉันทำสิ่งที่ฉันไม่ควรทำ ... และฉันหมายความว่าอย่างไร ฉันหมายถึงการเปลี่ยนแปลงการเขียนประวัติศาสตร์ใหม่สำหรับสิ่งต่าง ๆ ที่ผลักไปที่จุดเริ่มต้นแล้ว ฉันไม่สามารถกำหนดได้อย่างแม่นยำ แต่อาจรวมถึงกรณีเช่น:
commit --amend
เมื่อ HEAD ถูกผลักไปแล้วrebase
ของสาขาที่ไม่ใช่ในท้องถิ่นreset
ของสาขาที่ถูกผลัก
เหล่านี้เป็นตัวอย่างของสถานการณ์ที่อาจทำให้เกิดความpush
ล้มเหลวครั้งต่อไป(เพราะจะไม่ส่งต่ออย่างรวดเร็ว IIRC) ฉันทำสิ่งนั้นโดยบังเอิญและต้องสร้างสาขาขึ้นใหม่จากระยะไกล และฉันก็ยังโชคดีที่ทำสิ่งนี้เร็วพอจนไม่มีใครดึงประวัติที่ฉันเขียนใหม่
ฉันเชื่อว่าเป็นไปได้ที่จะระบุการเปลี่ยนแปลงประเภทนี้และป้องกันไม่ให้ผู้ใช้ทำการเปลี่ยนแปลงตามความต้องการ อาจมีตัวเลือกสำหรับสิ่งนั้นหรือไม่?
หากไม่มีคุณคิดว่ามันคุ้มค่าที่จะลองสร้างมันหรือไม่? คุณจะพยายามกำหนดวิธีการระบุ "การเปลี่ยนแปลงที่เป็นอันตราย" อย่างแม่นยำหรือไม่?
--force
มันจะไม่ช่วยให้คุณสามารถที่จะผลักดันเว้นแต่คุณจะระบุ