Tôi có một kho lưu trữ trống CENTRAL có ba kho lưu trữ dành cho nhà phát triển kéo và đẩy nó vào bình thường.Làm cách nào để buộc git pull ghi đè mọi thứ trên mỗi lần kéo?
Tôi cũng có hai kho lưu trữ khác lấy từ repo trần CENTRAL: một là máy chủ trực tiếp và máy còn lại là máy chủ thử nghiệm/giai đoạn — mỗi máy kéo từ chi nhánh tương ứng.
Kịch bản này là: Tôi có một tập lệnh móc post-update
trên repo CENTRAL tự động truy cập vào bản kiểm tra và bản trình diễn trực tiếp và chạy lệnh kéo trên mỗi. Điều này cập nhật cả máy chủ thử nghiệm và máy chủ trực tiếp, tất cả tùy thuộc vào nhánh nào có cam kết mới. Điều này tất cả các công trình lớn.
Vấn đề là: có thể có lần trong trường hợp khẩn cấp các tệp có thể được cập nhật trực tiếp trên máy chủ (thông qua ftp hoặc bất kỳ điều gì) và tập lệnh sau khi cập nhật CENTRAL sẽ không thành công kể từ khi hợp nhất/ghi đè xung đột sẽ xảy ra. Không có cách nào để tránh tình huống này, và điều đó là không thể tránh khỏi.
Điều tôi muốn xảy ra là: Tôi muốn kéo từ các trang web trực tuyến và thử nghiệm đến luôn ghi đè/hợp nhất khi kéo. Luôn. Các repos này sẽ được kéo chỉ vì chúng không phải để phát triển.
Trong tất cả các nghiên cứu của mình, tôi không thể tìm được giải pháp tốt để có thể kéo luôn bắt buộc ghi đè lên các tệp cục bộ. Đây có phải là ở tất cả có thể? Nó sẽ làm cho một kịch bản phát triển tuyệt vời nếu như vậy.
Trong khi tôi đã bỏ phiếu cho 'thiết lập lại những gì bạn vừa lấy' trả lời dưới đây, tôi nghĩ rằng giải pháp cho vấn đề thực sự của bạn là không thực hiện thay đổi ngoài băng. Sửa đổi, bất kể mức độ khẩn cấp, nên * luôn luôn * đi qua kiểm soát phiên bản. Không ai ngoại trừ nhà điều hành nên có quyền truy cập trực tiếp vào các trang web đang hoạt động (ví dụ: không phải nhà phát triển). Sử dụng kiểm soát phiên bản nhất quán có nghĩa là bạn có hồ sơ về thời điểm các thay đổi được thực hiện và ai đã thực hiện chúng cũng như các công cụ tốt hơn để làm việc với chúng. Tại sao phá hoại nó, không có lợi ích thực sự? – Novelocrat
@Novelocrat đúng, tôi hiểu những gì bạn đang nói. Thật không may, có một số tình huống mà ai đó có thể tải lên một tập tin trực tiếp đến máy chủ. Trong trường hợp đó tôi sẽ cần phải chạy một số lệnh để tái đồng bộ hóa các repos. Trước đây chúng tôi sử dụng một kịch bản FTP để di chuyển các tập tin từ repo đến máy chủ. Phương pháp được đề xuất ở trên sẽ đơn giản loại bỏ bước FTP, bước này đã hoạt động rất tốt trong quá khứ. – bmilesp
Vì vậy, đừng để mọi người truy cập trực tiếp vào máy chủ. Khóa truy cập FTP và SSH hoặc thông báo cho họ rằng họ sẽ bị sa thải vì thực hiện các thay đổi không thể thực hiện được. Để thực hành kiểu đó tiếp tục chỉ làm tổn thương bạn và nhóm của bạn trong thời gian dài. – Novelocrat