2010-08-20 39 views
11

Tôi sử dụng Git để theo dõi các thay đổi cục bộ trong các ứng dụng web PHP của mình, và tôi tự hỏi có nên sử dụng Git trên máy chủ không, để tôi có thể sử dụng git push để triển khai các thay đổi của mình. Sẽ có bất kỳ cạm bẫy với cách tiếp cận này?Tôi có nên sử dụng Git để triển khai ứng dụng web không?

+0

@bcat: Cảm ơn bạn đã chỉnh sửa. Không chắc chắn làm thế nào tôi bỏ lỡ một. – DLH

+3

Lỗ hổng cực kỳ rõ ràng là nếu bạn đẩy vào một kho không trống, cây làm việc (các tệp thực tế) sẽ * không * được cập nhật. Tôi không thể tin rằng không có câu trả lời nào đề cập đến điều đó. – Cascabel

+1

@Jefromi: Rất đúng. Tôi thực sự [chỉ tìm thấy một giải pháp cho điều đó.] (Http://stackoverflow.com/questions/279169/deploy-php-using-git) – DLH

Trả lời

5

Điều này có vẻ như là một cách hay để làm việc. Nếu bạn đang gắn thẻ và phân nhánh đúng cách, nó sẽ cho phép bạn nhanh chóng chuyển về phiên bản hoạt động của trang web của bạn trong trường hợp có sự cố xảy ra.

4

Tôi nghĩ đây là cách tốt để làm điều đó. Tôi xử lý mọi thứ theo cách tương tự, nơi các trang web trực tiếp chỉ là một thanh toán từ kho lưu trữ và tôi cập nhật chúng khi cần thiết.

+0

+1. Nó làm cho mọi thứ thực sự tốt đẹp nếu bạn muốn kiểm tra các thay đổi trên máy chủ (tất cả những gì bạn cần để chạy là lệnh trạng thái để tìm kiếm các tập tin mới hoặc sửa đổi) ... – ircmaxell

1

Và các hotfix trực tuyến có thể được đẩy trở lại phát triển.
Có thể thực hiện git status trên hệ thống trực tiếp có thể là trình tiết kiệm trực tiếp.

Đi cho nó!

Hãy cẩn thận

  • Hãy chắc chắn rằng các ".git" thư mục không thể truy cập từ các trang web.
  • Với PHP mã nguồn thường xuất hiện trên máy chủ web, do đó không thêm nguy cơ bổ sung trong trường hợp máy chủ bị tấn công.
+0

Đó không phải là giai đoạn QA là gì? Vì vậy, bạn không bao giờ thực hiện hotfix trực tuyến? Heck hầu hết các nơi thậm chí không để cho các nhà phát triển của họ có quyền truy cập vào máy chủ sản xuất, nhưng một mình sửa chữa những điều sống ... (nhưng nó là một điểm hợp lệ về sửa lỗi backporting) ... – ircmaxell

+0

Bởi vì sau khi Q & A giai đoạn dự án luôn luôn là bugfree ...? Tôi muốn tên của công ty thực hiện Q &A ;) –

+0

Không, nhưng vì bất kỳ sửa lỗi nào được yêu cầu phải trải qua QA trước khi đưa vào sản xuất (để cố gắng loại bỏ khả năng hồi quy) ... – ircmaxell

0

Tôi sẽ ưu tiên sử dụng một kỹ thuật như thế này nếu chỉ vì bạn có thể chắc chắn bất cứ điều gì trên trang web được triển khai của bạn cũng đang được theo dõi trong git. Đó là, nó khuyến khích một thực hành tốt nhất và ngăn cản những thay đổi đặc biệt không thuộc quyền kiểm soát nguồn. Để thay thế khác, hãy xem bài viết này về cách Twitter sử dụng BitTorrent để quản lý triển khai: http://torrentfreak.com/twitter-uses-bittorrent-for-server-deployment-100210/ Nó có thể hữu ích nhất khi bạn cần triển khai nhanh chóng trên một bộ sưu tập lớn các máy chủ.

0

Tôi nghĩ đó là giải pháp tuyệt vời. Tôi đã sử dụng nó để triển khai trang web của tôi trong một thời gian dài ... Nó đẹp vì bạn gần như ngay lập tức có thể đẩy các thay đổi của bạn vào sản xuất chỉ bằng cách cập nhật thư mục. Tôi đã gặp phải không có vấn đề an ninh hoặc bất cứ điều gì với nó.

Tận hưởng!

2

Git là tốt nhưng bạn có thể làm tốt hơn rất nhiều sau đó chỉ cần sử dụng git kéo. Hãy xem railess deploy cho capistrano.

Capistrano về cơ bản thực hiện kết hợp rsync và git pull để triển khai bản sao trang web của bạn. Nó hỗ trợ roleback, dàn dựng và phân phối triển khai.

Các vấn đề liên quan