Bắt đầu với Subversion, Git hoặc Hệ thống kiểm soát phiên bản tương tự để giữ Lịch sử tệp của tôi? [đóng cửa]


31

Tôi nhận ra đây có thể là một câu hỏi lớn trên bề mặt, nhưng tôi đang tìm kiếm các ví dụ cụ thể về thiết lập / quy trình công việc mà mọi người sử dụng để giữ lịch sử phiên bản của các tệp đã chỉnh sửa trên trang web WordPress. Chẳng hạn, khi phát triển một trang web (và thậm chí sau khi nó hoạt động), tôi thường thay đổi các tệp CSS và PHP, nhưng tôi không có cách nào tuyệt vời để trở lại các phiên bản cũ hơn của các tệp đó. Đối với mục đích của tôi, thực hiện các thay đổi trên bản cài đặt phát triển cục bộ và sau đó sao chép những thay đổi đó sang trang trực tiếp thường gặp nhiều rắc rối hơn tôi muốn. Bạn có đề xuất nào về cách bắt đầu sử dụng công cụ tạo phiên bản để theo dõi các chỉnh sửa đối với các tệp trên trang web trực tiếp không?


1
Chỉ tò mò, Mike - tại sao tiêu đề chỉnh sửa? Trong tâm trí của tôi, tiêu đề câu hỏi nên tuân theo các quy tắc ngữ pháp phù hợp. Có lẽ đó là một cuộc thảo luận tốt cho meta ...
Travis Northcutt

Bạn đã là một phần của cuộc thảo luận về meta, tnorthcutt. :)
Annika Backstrom

Câu trả lời:


14

Tôi không chắc bạn biết bao nhiêu về việc sử dụng kiểm soát phiên bản, nhưng gần đây tôi đã chuyển từ SVN sang Git và thấy điều đó thật tuyệt!

Mặc dù nó phụ thuộc vào máy chủ của trang web trực tiếp đã cài đặt Git (hoặc sẽ cho phép bạn). Tôi cũng có một thiết lập Git trên máy chủ trực tiếp, chạy ra một nhánh được gọi là như thế production. Bất cứ khi nào tôi hoàn thành việc thực hiện / sửa chữa một cái gì đó cục bộ, tôi hợp nhất nó vào productionchi nhánh, sau đó SSH vào máy chủ của trang web trực tiếp và thực hiện các thay đổi. Nhịp đập kéo tập tin qua FTP khi bạn không bao giờ biết nếu bạn đang ghi đè thay đổi, v.v.

Tôi khuyên bạn nên dành chút thời gian để làm quen với Git (nếu bạn chưa có), tôi thấy nó dễ dàng và ít rắc rối hơn SVN khi thay đổi / thêm tải tệp (và không giống như SVN, nó không gây ngu ngốc .svnthư mục ở khắp mọi nơi ).

Tôi đang dùng Mac, rất xin lỗi nếu không có cái nào trong số này áp dụng, nhưng tôi sử dụng Coda làm trình chỉnh sửa mã và cài đặt Git thông qua Cổng (sử dụng Porticus).

Nếu tôi thiết lập mọi thứ một lần nữa, tôi sẽ làm:

  1. Cài đặt Coda

  2. Cài đặt Porticus (sẽ yêu cầu bạn cài đặt Cổng, nhưng có thông tin trên trang đó)

  3. Khi bạn đã cài đặt Porticus, hãy mở nó ra, tìm kiếm "git-core" và Cài đặt nó.

  4. Tải xuống và cài đặt GitX 7-5

  5. Có một hướng dẫn tốt về cách thiết lập repo git ở đây , nhưng ở mức cơ bản: 1. Mở Terminal. 2. cdđến nơi bạn muốn trang web của bạn cư trú. $: mkdir mysite && cd mysite3. $: git initvà đó là nó! Nếu bạn thêm tập tin vào thư mục này thì tiếp tục bước tiếp theo

  6. Khi bạn đã thiết lập kho lưu trữ GIT cục bộ (bài viết trên), nếu bạn mở thư mục đó trong GitX, bạn sẽ có thể cam kết công cụ, v.v.

Thiết lập tất cả trên máy chủ có thể hơi khó khăn, tôi có một MediaTemple và một tài khoản Dreamhost mà cả hai đều có GIT. Liên kết trong bước 5 cho bạn biết cách thêm repo từ xa, vì vậy bạn không phải làm điều đó cho đến khi bạn muốn đưa trang web trực tiếp của mình vào phương trình. Tôi sẽ khuyên bạn nên làm mọi thứ hoạt động cục bộ trước tiên (không giống như SVN, GIT không yêu cầu kho lưu trữ từ xa, vì vậy bạn có thể làm mọi thứ trên máy của mình trong thời gian này).


Bạn có thể đi vào chi tiết hơn về quy trình làm việc của bạn như thế nào, bạn sử dụng công cụ / trình soạn thảo nào, cách bạn thiết lập GIT trên máy chủ trực tiếp của mình, v.v.? Tôi hy vọng sẽ có một bước tốt để tìm hiểu cách thiết lập với thứ gì đó như GIT.
Travis Northcutt

Tôi đã thêm một số bước để bắt đầu, chúc may mắn!
Joe Hoyle

Ngoài ra, bạn có một hướng dẫn tốt mà bạn giới thiệu cho GIT không? Tôi đang sử dụng Subversion và đã muốn chuyển đổi từ lâu vì Subversion dễ vỡ như thế nào (và cũng vì các thư mục .svn chết tiệt đó! :)
MikeSchinkel

Joe, cảm ơn vì đã thêm các chi tiết. Tôi đang dùng PC, nhưng tôi có thể tìm kiếm các công cụ tương đương và tất cả đều hữu ích cho những người dùng Mac khác.
Travis Northcutt

Tôi chỉ có thể giới thiệu git. Nó chỉ là đá. Bất kể hệ điều hành nào. Tôi sử dụng nó trên linux và trên windows thường xuyên (có thể nói: mỗi ngày bây giờ). trên cửa sổ có một git bash. Điều tuyệt vời là: bạn đã có tất cả các lệnh linux trong tay: code.google.com/p/msysgit
hakre

8

Tôi sử dụng SVN để kiểm soát phiên bản với mọi thứ tôi làm trong quá trình phát triển WordPress. Tôi thực sự bắt đầu theo cách này vì tôi cần SVN để phát triển trình cắm thêm ... khi tôi bắt đầu ở đó, đó là một phần mở rộng tự nhiên để tiếp tục sử dụng SVN cho các chủ đề và tập lệnh tùy chỉnh trên các trang web của khách hàng.

Bổ sung

Vì các plugin đã được lưu trữ trên máy chủ của WordPress, tôi chỉ cần kiểm tra một trình cắm trực tiếp vào /wp-content/plugins/thư mục cài đặt WordPress cục bộ của tôi (tôi chạy WAMP trên hộp phát triển của mình). Sau đó, tôi thực hiện các thay đổi đối với bản sao cục bộ của mình và khi nó sẵn sàng cho thời gian chiếu, hãy cam kết với kho lưu trữ. Đó là một quá trình trơn tru ở đó, không tải lên / tải xuống và xác minh ngay lập tức rằng những thay đổi của tôi đã hoạt động.

Chủ đề

Chủ đề là một chút khác nhau, đặc biệt là khi xây dựng cho một khách hàng. Tôi tạo một kho lưu trữ cục bộ (tôi có một Rphân vùng trên ổ cứng dành riêng cho mục đích này) và kiểm tra kho lưu trữ trống trực tiếp vào /wp-content/themesthư mục của tôi . Sau đó, tôi thực hiện các thay đổi khi cần thiết và phát triển cho đến khi nó sẵn sàng, cam kết sửa đổi khi tôi đi.

Khi tôi sẵn sàng xuất bản chủ đề lên máy chủ sản xuất của khách hàng, tôi xuất kho, nén và sử dụng Chủ đề gốc >> Thêm chức năng mới trong WordPress. Điều này cũng hoạt động với các plugin tùy chỉnh (không được lưu trữ bởi WordPress).

Công cụ

Như tôi đã nói, tôi sử dụng WAMP trên máy cục bộ của mình để chạy cài đặt phát triển WordPress. Nó hoạt động hoàn hảo trên hộp của tôi và cho phép tôi chạy nhiều phiên bản WordPress như tôi cần cho một dự án cụ thể.

Đối với SVN, tôi sử dụng Rùa SVN . Nó miễn phí, rất dễ sử dụng và tích hợp với cấu trúc tệp và lệnh của Windows. Cập nhật, cam kết và xuất tất cả đều đơn giản là nhấp chuột phải, chọn các thao tác lệnh. Sử dụng "Xuất" cho phép bạn gửi toàn bộ thư mục (không có các .svnthư mục gây phiền nhiễu ) trực tiếp đến bất kỳ vị trí nào bạn chọn - Tôi thường xuất ra máy tính để bàn. Nén thư mục cũng là một thao tác nhấp chuột phải và WordPress xử lý việc tải lên.

Chuyển tập tin theo cách thủ công có thể là một rắc rối, đặc biệt nếu bạn tiếp tục thay đổi một tập tin nhưng không phải tất cả chúng. Nếu bạn thay thế FTP trên toàn bộ thư mục với "ghi đè tất cả" được chọn, việc thay thế các tệp cũ sẽ dễ dàng hơn nhiều (và bạn không phải theo dõi xem cái nào đã thay đổi và cái nào không). Nó giống như bản cài đặt cũ 5 phút mà WordPress từng có - chỉ cần thay thế mọi thứ bằng phiên bản mới.


3

Cá nhân, tôi nghĩ rằng đây là một bài tập thú vị để cài đặt SVN / GIT và quản lý nó, nhưng nếu bạn có thể kiếm được 15 đô la mỗi tháng, Beanstalk đáng giá từng xu. Họ quản lý toàn bộ máy chủ cho bạn. http://beanstalkapp.com/ Các công cụ triển khai FTP thật tuyệt vời. Mine tự động triển khai phiên bản cho máy chủ dàn của tôi khi tôi cam kết chẳng hạn

Một cách khác để có được một số phiên bản tệp cá nhân là sử dụng hộp thả. Mỗi khi bạn lưu tệp vào hộp thả xuống, nó sẽ theo dõi phiên bản và bạn có thể khôi phục lại bất kỳ phiên bản nào trước đó sau này .. Bạn và một nhà phát triển hoặc nhóm khác có thể chia sẻ thư mục hộp thả. Cấp điều này không làm thân, sáp nhập, vv, nhưng nó làm cho một nhóm phân phối làm việc trên một trang web rất dễ dàng. Bạn chỉ không thể thực sự làm việc trên cùng một tệp chính xác cùng một lúc.

Chúng tôi giữ bản sao SVN hoạt động trong dropbox, sau đó tôi cam kết các tệp khi thời gian được ghi. Các nhà thiết kế của tôi sẽ không cam kết các tệp hoặc giao dịch với SVN, vì vậy đây là điều đáng khen ngợi.

Tôi thích SVN hơn vì tôi không cần tất cả các trung kế mà GIT rất tuyệt vời và có các công cụ GUI tốt hơn có sẵn của SVN.


2

Tôi thích Aptana rất nhiều, nó có tính năng lật đổ được tích hợp và bạn có thể dễ dàng kết nối với máy chủ của mình bằng ftp / sftp và đẩy các tập tin lên, một tính năng tuyệt vời khác là nếu bạn tạo một dự án php mới và bao gồm cả "toàn bộ" WordPress thư mục (với wp-admin, wp-gộp) bạn có thể hoàn tất mã trong các tệp chủ đề của mình.

Trong thiết lập của tôi, repo là cục bộ.


"Repo" là gì?
Travis Northcutt

2
"Repo" là cách viết tắt phổ biến cho "kho lưu trữ".
Trevor Bramble

"repo" = "kho lưu trữ"
MikeSchinkel

tôi cũng sử dụng git ( egit plugin ) bên trong Aptana (dưới win và linux), hoạt động tốt và dễ dàng.
bueltge

1

Bạn yêu cầu "nhưng tôi đang tìm kiếm các ví dụ cụ thể về thiết lập / quy trình công việc mà mọi người sử dụng để giữ lịch sử phiên bản của các tệp đã chỉnh sửa trên trang web WordPress" nhưng bạn cũng đề cập đến các sản phẩm :)

Bạn nhận được ở trên như trả lời một danh sách các công cụ và một số thực tiễn tốt nhất nhưng tôi sẽ tập trung ở đây vào quy trình công việc: HỌ KHÔNG PHẢI LÀ CÔNG CỤ:

Nhưng đối với các ví dụ chung / thiết lập / quy trình công việc:

Đối với người mới bắt đầu: có các mẫu CM, vì vậy độc lập với công cụ. Google trên CM Forms, rất nhiều sách ngoài đó, các cộng đồng thậm chí của wiki, ví dụ như http://www.cmcrossroads.com/forums .

Ngoài ra còn có hướng dẫn về cách thiết lập chiến lược luồng hợp lệ (chiến lược truyền phát google), v.v ...

Tôi không nghĩ có gì đặc biệt về việc triển khai WordPress so với CM Management bao gồm phát triển song song phân tán trên các nhà máy lớn Siebel, SAP, Informatica, Java, v.v. Nó thực sự gần như mặc định.

Điều còn thiếu, tôi nghĩ, là không ai đã viết một CMplan để phát triển WordPress (chưa) (IEEE). Một khi ai đó đã làm điều đó (công cụ độc lập). Các yêu cầu có thể được điền vào, tôi nghĩ, với bất kỳ công cụ nào.

Tôi nghĩ lý do mà kế hoạch chưa được viết là vì hầu hết tất cả các triển khai WordPress vẫn được thực hiện bởi 1 người với thiết lập sản xuất phát triển đơn giản để không có nhiều nhà phát triển / nhà thiết kế trong giai đoạn xây dựng phải triển khai các phiên bản khác nhau đang chạy trong môi trường thử nghiệm, ví dụ.

kế hoạch CMP bắt đầu bằng việc xác định tất cả các CI theo cách khác: lập danh sách tất cả các loại CI hiện diện trong triển khai WordPress bao gồm các ứng dụng, plugin, cơ sở dữ liệu, tài liệu, trợ giúp, nội dung, tệp cấu hình, ghi chú phát hành (!), v.v. ..). Đó là một khởi đầu tốt. Sau đó quyết định những gì bạn muốn mang theo CM.

Tiếp theo quyết định nguyên nhân gây ra thay đổi trên các CI này, ví dụ như một cuộc gọi của khách hàng về lỗi hoặc nâng cấp cần thiết. Nếu được thực hiện đúng, điều này dẫn đến một tình huống mà bạn có cảm giác mọi thứ đang được kiểm soát.

Các quyết định như hợp nhất trở lại từ sản xuất đến phát triển và cách xử lý đó là một phần của chương đó (2 mẫu chính ở đây) (mặc dù vậy, bạn nên cố gắng giảm thiểu các hotfix này).

Chỉ sau này mới tìm kiếm một công cụ để thực hiện CM ở một bên (bao gồm quản lý phiên bản là một trong những công cụ) và thay đổi công cụ quản lý ở phía bên kia (giúp bạn tỉnh táo).

Tôi nghĩ rằng đó là quy trình làm việc tốt nhất để bắt đầu kể từ khi tôi googled, chưa có ai làm. Tôi nghĩ rằng một khi người đầu tiên đã viết một Kế hoạch CM WordPress (theo IEEE), mọi người WordPress khác trên thế giới có thể sao chép kế hoạch đó và thực hiện các điều chỉnh cũng như thực hiện các mẫu trong công cụ của họ.

Không phải là quá nhiều công việc / quá nặng: phụ thuộc vào việc bạn có công ty hay không: nó có thể tiết kiệm thời gian lớn của bạn một ngày để có kế hoạch CM tốt.


0

Tôi đang sử dụng máy chủ được chia sẻ vì vậy tôi không thể cài đặt SVN hoặc bất cứ thứ gì tương tự. Tôi sử dụng Mercurial để kiểm soát phiên bản trên máy chủ của mình. Tôi sử dụng đồng bộ hóa FTP của Beyond So sánh để giữ cho các thư mục cục bộ và từ xa được đồng bộ hóa.


0

Tôi đang sử dụng git. nó đơn giản bạn phải hiểu lệnh đơn giản như clone, comit, đẩy, kéo và bạn đã sẵn sàng để đi. đó là cơ bản.

mặc dù, nếu bạn sử dụng git nó nhiều hơn, chẳng hạn như điều phối một nhóm để làm việc trên một sản phẩm, thì đó là một cấp độ khác. nhưng cuối cùng, nó đáng để sử dụng git hoặc bất kỳ điều khiển phiên bản nào. có thể nhận ra khi shit xảy ra.

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.