Đại học của chúng tôi cung cấp dịch vụ lưu trữ web cho các phòng ban của trường trên các máy chủ mà chúng tôi quản lý. Cài đặt các chương trình của bên thứ ba nguồn mở yêu cầu sửa đổi quyền và mã của chương trình trước khi nó chạy. (Chúng tôi đang sử dụng suEXEC, nếu bạn quen thuộc.)luồng công việc git để cập nhật phần mềm mã nguồn mở được sửa đổi tùy chỉnh?
Hiện tại chúng tôi cung cấp WordPress thông qua tập lệnh trình cài đặt. Người dùng tải lên bản phát hành ổn định mới nhất và chạy tập lệnh PHP phía máy chủ thông qua SSH. Tập lệnh PHP này sửa đổi quyền truy cập tệp của tất cả các tệp/thư mục, thêm/xóa một số mã trong các tệp khác nhau và tạo một vài tệp mới. Kịch bản trình cài đặt này là hành động cân bằng cồng kềnh khi một phiên bản ổn định mới được phát hành.
Tôi muốn bắt đầu sử dụng điều khiển phiên bản (cụ thể git) để theo dõi các thay đổi tùy chỉnh thay vì dựa vào tập lệnh để thực hiện thay đổi, nhưng không chắc chắn về quy trình làm việc cần sử dụng. Tôi quen với việc phân nhánh và hợp nhất, nhưng không chắc chắn cách tích hợp các thay đổi cũ của chúng tôi khi phát hành bản phát hành mới.
Luồng công việc git của tôi là gì để tích hợp các thay đổi mới từ lõi WordPress, mà còn giữ lại các thay đổi tùy chỉnh cũ hơn của chúng tôi?
Tôi khuyên bạn nên chống lại điều này, như rebasing có thể gây ra rất nhiều vấn đề. Nó mất lịch sử (bạn không thể quay trở lại phiên bản mà bạn thực sự đã triển khai trước đó, cũng như bạn có thể biết khi nào bạn đã thực hiện việc hợp nhất), và việc khôi phục nhánh làm việc của bạn luôn khiến bạn khó có thể cộng tác với những người khác, kể từ bây giờ họ cũng sẽ cần phải rebasing tất cả mọi thứ họ làm. Rebasing là cái gì đó tốt nhất cho những thay đổi chưa được chia sẻ với bất kỳ ai khác, hoặc được biết là dễ bay hơi, không phải để khôi phục lại toàn bộ lịch sử của bạn trên thượng nguồn mỗi khi có bản phát hành mới. –
Việc rebasing có thể gây ra vấn đề nếu bạn không giao tiếp được, nhưng nó hoàn toàn có thể quản lý được. Lịch sử chỉ bị mất nếu bạn không giữ tham chiếu đến cam kết - chỉ cần gắn thẻ phiên bản được triển khai và bạn sẽ không mất bất kỳ thứ gì. – dahlbyk
Trong trường hợp của chúng tôi, rebasing có vẻ như là một giải pháp tốt vì chúng tôi chỉ chia sẻ nguồn dưới dạng tarball. Không có nhà phát triển nào khác sử dụng sản phẩm cuối cùng đang thực hiện các thay đổi cho lõi như chúng tôi, vì vậy không cần phải chia sẻ với những người khác. –