Quy trình sản xuất / dàn máy chủ Git


108

Hiện tại trang web của tôi (máy chủ sản xuất) đã có rất nhiều mã trong đó. Và bây giờ tôi muốn bắt đầu sử dụng Git cho các dự án của mình và thiết lập một máy chủ dàn cho nhóm của tôi. Ai có thể cho tôi bất kỳ lời khuyên?

Đây là hình ảnh trong tâm trí tôi:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

Câu hỏi của tôi là, tôi nên bắt đầu như thế nào?

Đây là một số bước trong suy nghĩ của tôi:

  1. làm git inittrong máy chủ sản xuất (điều này có an toàn không?)
  2. clone repo từ sản xuất đến máy chủ dàn dựng
  3. nhà phát triển clonerepo từ dàn máy đến máy cục bộ của họ
  4. push tệp vào máy chủ dàn sau khi thay đổi xong
  5. khi quá trình dàn dựng đã sẵn sàng, pushmọi thứ để sản xuất

Luồng công việc này có hợp lý không hay có một số cách tốt hơn để làm điều đó?

Điều gì xảy ra nếu tôi chỉ muốn thay đổi một tệp?

Origin / master có liên quan gì đến nó trong quá trình này không ?? Nguồn gốc là ai? Tôi sẽ kết thúc với nhiều nguồn gốc ??

Ngoài ra, khi nào nhà phát triển nên sử dụng branchtrong trường hợp này?

Câu trả lời:


59

Tốt hơn nên chỉ sử dụng nhánh chính cho nhánh Sản xuất và phát triển cho Dàn. Mỗi nhà phát triển nên tạo nhánh cục bộ để thêm các tính năng mới và sau đó hợp nhất với nhánh phát triển. Nếu bạn chưa quen với git, hãy thử sử dụng - http://github.com/nvie/gitflow Ngoài ra còn có một hình ảnh tốt mô tả mô hình phân nhánh git - http://nvie.com/posts/a-successful-git- mô hình phân nhánh /


Đây là một câu trả lời tốt hơn. Tôi không quen thuộc lắm với khái niệm phân nhánh Git.
chèo thuyền kayue

@bọ cánh cứng. Bạn có liên kết đến một số tài nguyên giải thích nhánh phát triển -> đẩy đến hệ thống dànnhánh chủ -> đẩy đến máy chủ sản xuất chi tiết hơn không? Bài báo tuyệt vời Một mô hình phân nhánh Git thành công không đề cập đến phần đó ngay cả khi nó đề cập đến các khái niệm rất tốt về phân nhánh và lập phiên bản.
Edgar Alloro

19

Đề xuất của bạn có vẻ ổn, nhưng tôi sẽ không để các nhà phát triển đẩy trực tiếp đến máy chủ dàn. Thay vào đó, một nhà tích hợp nên xem xét cẩn thận các nhánh và kết hợp chúng vào nhánh chính (hoặc nhánh phát triển nếu bạn sử dụng mô hình luồng git như được đề xuất bởi bUg.) * Cùng một người sẽ đẩy đến máy chủ dàn.

* Người tích hợp : " Một người khá trung tâm đóng vai trò là người tích hợp trong một dự án nhóm nhận các thay đổi do người khác thực hiện, đánh giá và tích hợp chúng và công bố kết quả cho những người khác sử dụng ... "


1. thực hiện một git init trong máy chủ sản xuất (điều này có an toàn không?)

Có, nó an toàn, nhưng bạn tất nhiên phải đặt các quyền rất hạn chế trên repo này. Tôi có thể sẽ bắt đầu bằng cách curlnhập toàn bộ trang web vào một đĩa cục bộ, nếu tôi chưa có.

2. sao chép repo từ sản xuất sang máy chủ dàn

Bạn có thể nên có một repo "trung tâm" tách biệt với cả máy chủ sản xuất và dàn máy. Cái đó có thể được nhân bản và đẩy khi cần thiết.

3. nhà phát triển sao chép repo từ dàn máy sang máy cục bộ của họ

4. đẩy tệp đến máy chủ dàn sau khi thay đổi xong

5. khi dàn dựng đã sẵn sàng, hãy đẩy mọi thứ vào quá trình sản xuất

Thay thế "staging" bằng "center" và tôi nghĩ bạn vẫn ổn, nhưng vấn đề lớn hơn là cách bạn sẽ làm việc với các nhánh và hợp nhất, như bUg đã chỉ ra.


10
1: Để làm cho repo Git an toàn trong quá trình sản xuất, hãy đảm bảo thêm tệp .htaccess có "Từ chối tất cả" bên trong.
chèo thuyền kayue

2
2: Repo "Trung tâm" của Felixyz đề cập đến repo trần. Sử dụng lệnh --bare để tạo một repo trần.
chèo thuyền kayue

1
@keyue 1: Tốt hơn nữa, hãy thêm RedirectMatch 404 /\.gitvào .htaccess sản xuất của bạn để bảo vệ thư mục .gitignore , .gitattributes.git của bạn .
Leo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.