Gần đây, chúng tôi đã chạy thử "git reset --hard" và vô tình hoàn tác rất nhiều công việc trên repo GIT chính của chúng tôi. Chúng tôi đang trong quá trình phục hồi công việc, nhưng tôi muốn chắc chắn rằng không có điều gì như thế này xảy ra lần nữa.Trong GIT, làm cách nào để ngăn người khác thay đổi hoặc xóa các cam kết đã được đẩy?
Tôi biết có rất nhiều câu hỏi về vấn đề này, nhưng tất cả dường như là về việc phục hồi chứ không phải là phòng ngừa. Có cách nào tôi có thể ngăn chặn việc đẩy đến repo chính của chúng tôi mà thay đổi hoặc loại bỏ các cam kết đã được đẩy? Có một thiết lập cấu hình hoặc có thể là một cái móc đẩy sẽ thực hiện công việc?
chmod --recursive 700/path/to/git/rep và chỉ cho phép quản trị viên kéo vào repo chính. –
Lệnh đẩy sẽ không bao giờ xóa các cam kết khỏi repo từ xa. Nó có thể di chuyển các nhánh xung quanh, nhưng các cam kết vẫn còn đó. –
@WilliamPursell: một 'push -f' có thể xóa các cam kết. –