Tôi muốn biết liệu có cách nào dễ dàng để đẩy kho GIT vào sản xuất (trên máy chủ FTP) không? Cảm ơnGit Đẩy vào Sản xuất (FTP)
Trả lời
Một số công cụ thời gian gần đây được bổ sung vào Git wiki:
git-ftp by René Moser is a simple shell script for doing FTP the Git way. Use git-ftp.sh to upload only the Git tracked files to a FTP server, which have changed since the last upload. This saves time and bandwith. Even if you play with different branches, git-ftp.sh knows which files are different. No ordinary FTP client can do that.
git-ftp by Edward Z. Yang is a simple script written in python for uploading files in a Git repository via FTP, only transferring new files and removing old files.
Nếu bạn đang đưa mã vào sản xuất, tôi khuyên bạn nên sử dụng "trình cài đặt" chẳng hạn như gói RPM để cài đặt mã của bạn. Bằng cách đó, nó sẽ là phiên bản được đóng dấu và bạn sẽ có thể tận dụng gói cài đặt để hỗ trợ các bản cập nhật cho mã sản xuất. Git không thực sự được thiết kế để hỗ trợ cài đặt sản xuất, nó được thiết kế để theo dõi các thay đổi đối với chính mã đó.
Trong mọi trường hợp, với một .RPM (hoặc EXE hoặc bất kỳ) được xây dựng, bạn chỉ có thể FTP nó vào hệ thống sản xuất và cài đặt nó giống như bất kỳ gói nào khác.
Vâng, git có thể tận dụng khá tốt cho mục đích này trong thực tế. Hãy kiểm tra thẻ và tạo các móc sau, sau khi hợp nhất, sau khi hợp nhất để xử lý mọi thủ tục cài đặt cần thiết. Chúng tôi đã từng sử dụng gói RPM nhưng sau khi chuyển sang git, nó chỉ đơn giản là quá mức cần thiết. – d11wtq
Thêm nó làm điều khiển từ xa, sau đó bạn có thể đẩy nó, tuy nhiên chỉ cần đẩy mã là không đủ, nó cần phải được hợp nhất với cây làm việc. Cách dễ nhất là để đi theo cách khác quanh, có một cây làm việc trên máy chủ và lấy và hợp nhất vào đó.
Đó không phải là điều mà git dành cho, nói đúng. Tuy nhiên, nếu nguồn của bạn là thứ không cần biên dịch hoặc xử lý, hãy nói một trang web bao gồm hoàn toàn tệp html và javascript và các loại tương tự, bạn có thể sao chép repo trên máy chủ web của mình và sử dụng git pull
từ máy chủ giữ cho nó luôn cập nhật. Lưu ý, tôi sẽ cấu hình máy chủ web của bạn để ẩn thư mục git và như vậy. Và đó mới chỉ là khởi đầu của những lo ngại về an ninh.
Nếu bạn có bất kỳ loại biên soạn hoặc chế biến, bạn nên bắt đầu xem xét Ant, Maven, BuildR, SBT vv
Vấn đề duy nhất với điều này là khi bạn không có quyền truy cập vào máy chủ sản xuất, tức là nó có thể là lưu trữ được chia sẻ đơn giản, chỉ với quyền truy cập FTP. –
Nếu bạn đang trên một mac và có Transmit, tôi muốn giới thiệu kịch bản git-tranmit sau đây (https://gist.github.com/379750). Nó sử dụng DockSend để gửi chỉ các tập tin cập nhật mới nhất. Nếu bạn không quen với DockSend, hãy xem http://www.panic.com/blog/2010/11/15-secrets-of-transmit/.
Setup:
- cp git-transit/usr/sbin /.
- cd/usr/sbin
- chmod + x git-truyền
- Cài thả gửi cho các ứng dụng trực tiếp của bạn
- Run git-truyền trong kho git của bạn.
Kịch bản này khá vụng về việc chọn 'tệp được cập nhật lần cuối'. Kiểm tra [ngã ba này] (https://gist.github.com/quickshiftin/8809435) để có giải pháp thanh lịch hơn. – quickshiftin
Ngoài ra, bạn có thể chỉ truyền các tệp được theo dõi và không được theo dõi. Đây là một tập lệnh nhỏ mà chỉ làm như vậy: https://gist.github.com/borisdiakur/37b8f512f6f8865b79c7 – borisdiakur
Có tập lệnh Ruby tại đây - Ruby git-deploy via FTP or SSH chỉ tải lên các tệp đã thay đổi trong git repo qua FTP hoặc SSH.
Như đã đề cập trong câu trả lời khác, dưới đây là Python git-ftp.py script thực hiện điều tương tự.
Và đây là phiên bản tệp shell của git-ftp.
Ngoài ra còn có một dự án đá quý Ruby được gọi là git-deploy cho phép bạn thiết lập triển khai tùy chỉnh qua điều khiển từ xa bằng cách sử dụng lệnh git push
, giống như các dịch vụ Heroku và Azure.Đối với điều này, bạn có thể cần phải viết các phương thức tùy chỉnh để triển khai thông qua FTP và tôi nghĩ rằng nó giả sử bạn có quyền truy cập SSH vào máy chủ sản xuất của mình.
Đây là một kịch bản trong PHP để tải lên gần như tự động git-diff đến một máy chủ FTP:
Nếu bạn thích giao diện đồ họa, sử dụng SourceTree, bạn có thể dễ dàng thiết lập một hành động Custom sử dụng git -ftp được đề cập ở trên. Một mô tả ngắn gọn về thiết lập (dành cho Mac) tại Push a Git repository to an FTP
tôi đã tìm thấy PHPloy một công cụ tuyệt vời cho việc gửi Git của bạn cam kết đến các máy chủ từ xa thông qua FTP. Nó hoạt động từ dòng lệnh và được viết bằng PHP (và thậm chí phát hiện các thay đổi trong mô-đun con).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Xong!
(Disclaimer: sau khi sử dụng nó trong một thời gian bây giờ tôi đã đóng góp một số bản vá lỗi mã và cải tiến, làm cho nó tương thích với Windows.)
Rất dễ tìm, trông đơn giản và đủ mạnh mẽ, tôi chắc chắn sẽ dùng thử. – GTCrais
Bạn luôn có thể cố gắng để gắn kết ftp vào một thư mục địa phương sử dụng http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem.
Sau đó, bạn có thể sử dụng nó theo cách tương tự như this.
Tôi đã phải vật lộn rất nhiều để tìm ra điều này. Tôi đã tìm ra cách dễ dàng để thực hiện việc này từ nhiều nguồn khác nhau (git-ftpINSTALL, git-ftpUPLOAD, git-ftpIssue, git-ftpPUSH). Bạn có thể đọc để tham khảo nhưng không có nhu cầu vì tôi đã đề cập từng bước quá trình dưới đây.
Điều đầu tiên đầu tiên: Cài đặt git và cuộn tròn sử dụng bia trên MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Chạy các lệnh sau:
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Đang cập nhật sử dụng git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Cài đặt
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Tải lên tất cả các file
git ftp init
Hoặc nếu các tập tin đã có
git ftp catchup
làm việc và triển khai
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Nếu có một lỗi: chỉ số pathspec '. txt 'không khớp với bất kỳ tệp nào đã biết đến git. Nó có nghĩa là tệp chưa được dàn dựng, vì vậy hãy thêm tệp và sau đó thử cam kết.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Hy vọng điều này sẽ hữu ích.
Bạn có thể thử FTPloy ...
"Push changes to GitHub or Bitbucket."
"Deploy Changes automatically to your server"
Bạn có một dự án miễn phí để thử nó ra với. Tôi hiện đang sử dụng cho một trang web php nhỏ và nó hoạt động khá tốt. Một vài lỗi trên trang web, nhưng nó là một dự án hoạt động nên ít nhất họ đang làm việc trên nó.
Tôi đã đăng câu trả lời này sớm. FTPloy không hoàn toàn là 'sản xuất đã sẵn sàng' và có rất nhiều lỗi. Tôi không thể làm cho nó hoạt động được. Tôi đang sử dụng DeployHQ hoạt động rất tốt. –
Miễn phí cho một dự án và hoạt động rất tốt.
- 1. "Cách thích hợp để kéo git" nhánh sản xuất "vào máy chủ sản xuất
- 2. Git với môi trường phát triển và sản xuất
- 3. Git hợp nhất và đẩy
- 4. Đẩy subtrees vào một repo git
- 5. Đẩy Git Project vào Local Directory
- 6. git chỉ đẩy một tệp vào Heroku
- 7. Đẩy kho git hiện có vào gitolite
- 8. Đẩy vào Github từ RStudio
- 9. Đẩy thẻ với Nhà xuất bản Jenkins Git - nhiều kho lưu trữ Git (nhánh)
- 10. Capistrano + Git: lưu trữ cục bộ vào máy chủ sản xuất
- 11. Git đẩy ngược dòng
- 12. Làm cách nào để đẩy git vào github trên Windows?
- 13. Không thể đẩy nhánh chính vào kho git với netbeans
- 14. Đẩy vào TFS git bằng khóa công khai/riêng
- 15. đặt kho lưu trữ ftp bằng git
- 16. Git vs FTP để triển khai web
- 17. git bị treo khi đẩy
- 18. Triển khai mã cho (các) máy chủ sản xuất từ Git
- 19. Tôi không thể đẩy git?
- 20. Sử dụng git để xuất bản vào một trang web
- 21. Đẩy nhánh hiện tại vào Gerrit
- 22. Git Đẩy treo cứng sau một vài Đẩy
- 23. git - đẩy vs hiện tại đẩy ngược dòng (theo dõi)
- 24. Gia hạn Giấy chứng nhận SSL đẩy sản xuất - Apple APNS
- 25. Thông báo đẩy trên iPhone iOS sẽ xuất hiện trên sản phẩm không gửi
- 26. Thông báo đẩy mã Xcode: Máy chủ APNS cho chế độ sản xuất
- 27. Thẻ git có được đẩy không?
- 28. Tôi nên đăng nhập vào ứng dụng sản xuất
- 29. Nhận sản xuất APNS mã thông báo
- 30. Git đẩy nhánh hiện tại vào điều khiển từ xa với Heroku
thats perfect, thanks – Roch
Các bạn đã thử cả hai? Bạn thích cái nào hơn? – trusktr
sử dụng git-ftp, có cách nào để chỉ đẩy thư mục con (ví dụ: thư mục xuất bản của bản mẫu html5) vào thư mục ftp được chỉ định không? – gang