2013-02-20 29 views
7

Tôi đang phát triển một chủ đề wordpress đang được kiểm soát phiên bản bằng Git và trong khu vực phát triển địa phương (WAMP). Tôi đẩy cam kết bitbucket bằng cách sử dụng smartgit như một GUI. Tôi có 2 chi nhánh, chủ và phát triển. Tôi muốn triển khai nhánh phát triển cho một khu vực dàn dựng (một cài đặt wordpress trên máy chủ trực tiếp của tôi). Tôi đã thử sử dụng ftploy mà không đạt được điều này; tuy nhiên nó dường như không cho phép tôi chọn chi nhánh nào để triển khai và tôi muốn dự trữ triển khai nhánh chính để triển khai cuối cùng thực tế. Tôi đang sử dụng shared hosting nhưng tôi có quyền truy cập SSH. Làm thế nào tôi có thể đạt được tốt nhất việc triển khai chi nhánh phát triển để chia sẻ lưu trữ. Git không được cài đặt trên máy chủ (và không thể)Triển khai dự án web dưới quyền kiểm soát phiên bản GIT để chia sẻ lưu trữ

+0

được git cài đặt trên máy chủ? – Chronial

+0

không ... xin lỗi quên đề cập đến ... sẽ cập nhật câu hỏi – byronyasgur

Trả lời

6

có một cái nhìn tại git-ftp:

tôi sử dụng git-ftp cho các dự án kịch bản dựa của tôi, chủ yếu là PHP. Hầu hết các công ty lưu trữ web giá rẻ không cung cấp hỗ trợ SSH hoặc git, nhưng chỉ chỉ FTP.

Đó là lý do tại sao tôi cần một cách dễ dàng để triển khai các dự án được theo dõi git của tôi. Thay vì chuyển toàn bộ dự án, tôi nghĩ, tại sao không chỉ chuyển các tệp đã thay đổi kể từ lần trước, git có thể cho tôi biết những tệp đó.

Thậm chí nếu bạn đang chơi với các chi nhánh khác nhau, git-ftp biết các tệp nào khác nhau. Không có máy khách FTP thông thường nào có thể làm điều đó.

+0

Cảm ơn bạn. Trên thực tế tôi đã thực sự hy vọng cho một cái gì đó tự động mặc dù. Toàn bộ vấn đề là khi tôi phát hiện ra bất kỳ lỗi nào trong khu vực dàn dựng (chủ yếu là tôi đang thực hiện việc này để xác thực w3c), tôi có thể thực hiện các thay đổi cục bộ và đẩy tới máy chủ. Tôi nghĩ rằng với git-ftp tôi phải gõ một số lệnh vào dấu nhắc, cùng với cam kết và đẩy, và kết hợp với thực tế là tôi đã không đặc biệt hạnh phúc trong cmd nó không phải là công việc 'lý tưởng' của tôi; nhưng tôi sẽ sử dụng nó nếu tôi phải làm vậy. Bạn có nghĩ đây là lựa chọn tốt nhất mà tôi có khả năng nhận được không? Tôi cho rằng tôi tự hỏi tại sao một chương trình như smartgit cant chỉ triển khai vào ftp? – byronyasgur

+0

Bạn có thể viết git post-commit và post-merge hooks để chạy git-ftp trên commit và merge. Bạn có thể nhắm mục tiêu các chi nhánh cụ thể chỉ khi đó là hành vi mong muốn của bạn. –

+0

@JonathanPatt Nếu tôi đã viết những cái đó thì tôi có phải làm bất cứ điều gì đặc biệt để làm cho chúng hoạt động khi tôi đã cam kết hoặc hợp nhất thông qua GUI Smartgit không? – byronyasgur

1

Đã kết thúc bằng cách sử dụng this script làm chính xác những gì tôi muốn. Trên thực tế nó được viết bởi cùng một người đã xây dựng ftploy nhưng vì tôi có quyền truy cập vào tập lệnh, tôi đã có thể xác định nhánh nào đã được triển khai. Bằng cách này tôi phát hiện ra rằng ftploy roadmap bao gồm việc có thể Chọn Chi nhánh cho các dự án Bitbucket.

+1

Hãy coi chừng! Điều này có vẻ như nó sẽ phá vỡ rất nhiều khi bạn đẩy nhiều hơn một cam kết cùng một lúc. Tôi thực sự khuyên bạn nên làm theo lời khuyên của Jonathan và viết một móc hậu cam kết cho git-ftp. – Chronial

+0

@Chronial Cảm ơn bạn đã cảnh báo ... điều gì khiến bạn nghĩ vậy? – byronyasgur

+1

Kịch bản chỉ xem xét các thay đổi từ cam kết cuối cùng - bao giờ (xem: 'cam kết [0]'). Một khi bạn đã đẩy nhiều cam kết ftp của bạn sẽ nhận được ra khỏi đồng bộ và không bao giờ trở lại trạng thái chính xác một lần nữa. – Chronial

0

Vì bạn có quyền truy cập SSH, có vẻ như với tôi bạn có thể thiết lập lệnh rsync trong tập lệnh móc hậu git sau khi nhận. Xem https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy-hook.sh tôi đã sử dụng điều này với gitolite nhưng tôi chắc chắn chúng ta có thể làm điều gì đó tương tự với một cái móc github cũng (ai?)

4

Tôi là người sáng lập của FTPloy và tôi chỉ muốn cho bạn biết rằng chúng tôi đã phát hành chức năng chọn chi nhánh.

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