Wordpress với Git


21

Tôi đang hỏi câu hỏi này vì tôi đã tìm kiếm trên internet nhưng không thể tìm ra giải pháp phù hợp. Trên thực tế tôi muốn một giải pháp trong đó nhiều nhà phát triển có thể làm việc trên dự án wordpress duy nhất mà không tạo ra bất kỳ sự lộn xộn nào với nhau, nhưng như chúng ta biết rằng trong wordpress, mọi thứ được duy trì trong cơ sở dữ liệu như plugin nào đang hoạt động và không hoạt động.

Nếu các nhà phát triển cài đặt các plugin cho dự án cục bộ của họ hơn là cách họ giao tiếp với nhau thì mọi người nên cài đặt plugin hoặc plugin cụ thể đó, v.v. và một số thông tin sai lệch có thể phá vỡ trang web của người khác nếu mọi nhà phát triển đẩy / kéo mã.

Chúng ta cũng nên chia sẻ cơ sở dữ liệu, để chia sẻ cài đặt plugin / chủ đề để không xảy ra xung đột hoặc xung đột nhỏ giữa các nhà phát triển.

Cảm ơn


5
wp-cli.org sẽ giúp khá nhiều cho quy trình làm việc của bạn.
jgraup

1
Nếu có thể chuyển sang jekyll hoặc tương tự.
Jens Schauder

Jekyll được nướng vào github, rõ ràng là hoạt động tốt với git ...
DaveRGP

FWIW, các xung đột và xung đột không được loại bỏ hoàn toàn khi sử dụng một cái gì đó như Git, nó chỉ cho phép bạn tránh các xung đột nói theo cách của bạn cho đến khi bạn sẵn sàng "hợp nhất" chúng.

1
Tất cả các nhà phát triển có thể chia sẻ một DB chung được lưu trữ công khai và cam kết với GIT để kiểm soát phiên bản không?
MonkeyZeus

Câu trả lời:


18

Git cho plugin :

Sau đó, sử dụng Git để quản lý composer.jsonvà các thay đổi trong plugin TGM.

Phần khó nhất là đồng bộ hóa cơ sở dữ liệu :

Chắc chắn, chúng ta nên chia sẻ cơ sở dữ liệu. Cấu hình lại một cài đặt / tùy chọn plugin không phải là một ý tưởng tốt.

rất nhiều plugin , cả miễn phí và cao cấp, có thể giúp ích.

Nếu bạn muốn thử một cái gì đó bằng tay, hãy kết hợp wp-cli với câu trả lời của @Wyck.


8

Nhóm của tôi phải đối mặt với một vấn đề tương tự. Chúng tôi sử dụng git để phiên bản mã tùy chỉnh của riêng mình như plugin và chủ đề mà chúng tôi viết. Chúng tôi sử dụng Trình soạn thảo để quản lý các phụ thuộc, chẳng hạn như các plugin mà chúng tôi không viết. Chúng tôi kiểm tra các tệp composer.json và composer.lock vào git để giữ cho mọi người đồng bộ hóa. Mỗi nhà phát triển dự kiến ​​sẽ kéo nhánh git master và chạy composer updatetrên playpens của họ thường xuyên để mọi người vẫn cập nhật.

Trong cơ sở dữ liệu, các nhà phát triển chủ yếu quan tâm đến cấu hình và chúng tôi thường sử dụng WP-CLI để giữ cấu hình đồng bộ. Ví dụ: chúng tôi có một tập lệnh shell chạy lệnh WP-CLI để bật hoặc tắt các plugin trên cơ sở mỗi máy chủ; một số plugin chỉ được sử dụng trên máy chủ dàn nội dung của chúng tôi, ví dụ, vì vậy tập lệnh có thể được chạy trên bất kỳ máy chủ nào và sẽ chỉ kích hoạt bộ thích hợp trên máy chủ đó. Một số cấu hình quá tốn thời gian cho tập lệnh chỉ được ghi lại và sao chép thủ công nếu cần thiết.

Chúng tôi cũng có một tập lệnh perl sẽ sao chép hoàn toàn cơ sở dữ liệu từ máy chủ dàn nội dung của chúng tôi sang máy chủ QA hoặc dev. Các nhà phát triển có thể sử dụng định kỳ này nếu họ muốn tất cả nội dung hiện tại, mặc dù điều đó thường ít quan trọng hơn việc có mã và cấu hình. Kịch bản thực hiện các tác vụ này:

  • myQuery kết xuất cơ sở dữ liệu của máy chủ dàn nội dung, thay đổi tên bảng, tải vào cơ sở dữ liệu của máy chủ đích
  • sử dụng wp-cli để thay đổi tham chiếu đến máy chủ dàn trong cơ sở dữ liệu để tham chiếu đến máy chủ đích
  • đồng bộ thư mục tải lên trên máy chủ đích với nội dung tải lên của máy chủ dàn dựng

Có một số giải pháp đầy hứa hẹn để thực sự phiên bản cơ sở dữ liệu đang xuất hiện nhanh chóng. VersionPressMergebot là hai cái tôi biết và có thể có những cái khác.

Tôi đã viết thêm chi tiết kỹ thuật về cách chúng tôi thiết lập WordPress để hoạt động với git và Trình soạn thảo trên blog của tôi. Cần phải chạy với lõi WordPress trong thư mục riêng để phân tách rõ ràng giữa mã chúng tôi muốn duy trì trong lõi git và lõi WordPress. Chúng tôi coi chính WordPress như một sự phụ thuộc và quản lý nó với Trình soạn thảo.


7

Giải pháp tốt nhất tôi từng thấy là sử dụng Bedrock ( https://roots.io/bedrock/ ).

Các câu trả lời khác cho câu hỏi này (Nhà soạn nhạc và một cái gì đó để quản lý các plugin của bạn) là những câu trả lời hay; nhưng Bedrock cung cấp một cách thức được hệ thống hóa, được hỗ trợ, được ghi chép lại, được cải tiến liên tục để thực hiện việc này, tốt hơn là tự mình thực hiện.

Ngoài ra, hãy nhớ rằng bạn có thể có nhiều hơn một git repo - một cho chủ đề của bạn, một cho mỗi plugin tùy chỉnh mà bạn phát triển và sau đó một 'chủ' cho cài đặt Bedrock / Wordpress.


"Bedrock cung cấp một cách thức được hệ thống hóa, được hỗ trợ, được ghi chép lại, được cải tiến liên tục để thực hiện việc này, tốt hơn là tự mình thực hiện." Có thể xác nhận, Bedrock là tuyệt vời! Sử dụng nó với Sage (được phát triển bởi cùng một người, Rễ) và phát triển tùy chỉnh trong một nhóm có thể quản lý được. Vẫn còn những trục trặc, và câu trả lời @ Dan9 đã đầy đủ hơn, nhưng tôi không thể hát những lời khen ngợi của Bedrock đủ!
samrap

Là một nhà phát triển MVC, tôi đồng ý, nhưng loại công việc tôi làm trên các trang web WordPress dựa trên phần lớn là vì vậy thiết lập quản lý tài sản trong Sage đáng để thực hành không tốt trong toàn cầu.
samrap

0

Nếu thật sự cần thiết là bạn có tất cả các plugin được cài đặt hoạt động trên chủ đề hoặc plugin tùy chỉnh, thì tôi cũng sẽ chia sẻ cơ sở dữ liệu.

Chúng tôi sử dụng git và nhà soạn nhạc để cập nhật các môi trường phát triển khác nhau. Chỉ cần kéo các thay đổi mới nhất và chạy lại nhà soạn nhạc và bạn đã sẵn sàng để đi.


0

Đối với điều đó trước hết chúng ta cần hiểu cấu trúc thư mục WordPress. Cấu trúc thư mục WordPress không thân thiện với người dùng khi sử dụng gitvới nó. Vì vậy, tôi sẽ đề nghị bạn sử dụng điều này với gitkiến trúc sửa đổi khá thân thiện. Không, không cần phải hoảng sợ. Bạn không nhất thiết phải tạo ra điều này. Có rất nhiều loại hệ thống nồi hơi hoặc cấu trúc WordPress ngoài kia. Chỉ cần chọn một trong số họ và bắt đầu mã hóa.

Bây giờ đến điểm viết mã được tổ chức tốt hoặc mã maitainable. Chúng tôi thực sự đặt mã của chúng tôi trên wp-content\themes\your-themehoặc wp-content\themes\your-theme. Vì vậy, trong hầu hết các phần mềm gitthân thiện với WordPress, wp-contentphần này được tách biệt. Và họ chủ yếu kéo repo WordPress throuh composer. Nó làm cho dự án đầy đủ sạch hơn rất nhiều.

Đồng bộ hóa plugin là một phần quan trọng khác. Sẽ tốt hơn nếu bạn cài đặt plugin của mình thông qua composer. Nó làm cho mã dự án sạch hơn rất nhiều. Ở đây bạn sẽ có một cái nhìn tổng quan về cách cài đặt các plugin WordPress thông qua composer.

Bây giờ đến phần quan trọng nhất, làm thế nào để đồng bộ hóa cơ sở dữ liệu. Tôi nghĩ rằng nó có thể được thực hiện dễ dàng hơn theo 2 cách dưới đây -

  • Tất cả các nhà phát triển nên sử dụng một cơ sở dữ liệu từ xa. Và thường xuyên tạo một bản sao lưu của nó.
  • Tự động hóa cơ sở xuất nhập khẩu của WordPress. Nó có vẻ phức tạp, nhưng nó không phải là. Chỉ cần làm một số google, hy vọng bạn có thể làm điều đó.

Hy vọng rằng sẽ giúp bạn.

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.