2011-09-27 35 views
5

Tình huống

Tôi chưa từng sử dụng git hoặc bất kỳ điều khiển phiên bản nào khác. Bây giờ tôi đã có một dự án web cần phải có một phiên bản ổn định và phát triển, cả hai đều chạy trên cùng một máy chủ trong các thư mục khác nhau.các vấn đề cơ bản về sự hiểu biết git

  • Ổn định: /var/www/afod/afod
  • Phát triển: /var/www/afod_dev/afod

Bây giờ tôi muốn sử dụng git để đồng bộ hóa thay đổi từ dev-phiên bản vào phiên bản ổn định và như tôi đã không bao giờ trước khi sử dụng VC- hệ thống tôi dường như không nhận được cách để làm điều này.

Những gì tôi đã làm cho đến nay

Tôi tạo ra một kho git trong /var/www/afod/afod và nhân bản nó vào thư mục dev qua:

cd /var/www/afod_dev/afod 
git clone /var/www/afod/afod 

Bây giờ tôi đã có 2 kho mà tôi muốn tiếp tục đồng bộ sử dụng git pull ở phía phiên bản ổn định.

Sự cố (s)

Tôi đã có 2 chi nhánh, web và dev. Nhưng có vẻ như git kéo đồng bộ phiên bản ổn định từ cả hai nhánh. Nhưng tôi chỉ muốn đồng bộ hóa các thay đổi đối với phiên bản ổn định, rằng tôi đã hợp nhất với web-branch trong phiên bản dev.

tổng số nhầm lẫn

Tôi hy vọng bằng cách nào đó tôi có thể chỉ ra vấn đề của mình. Tôi dường như có một vấn đề hiểu biết cơ bản về cách thức hoạt động của git, nhưng có vẻ như đó là phần mềm phù hợp để làm những gì tôi muốn làm. Về cơ bản tôi muốn có một nhánh được tự động đồng bộ hóa vào phiên bản ổn định và các nhánh khác mà tôi đã hợp nhất vào nó. Nhưng sự phát triển phải nằm trong một thư mục khác với phiên bản ổn định.

Liên quan đến câu trả lời đầu tiên từ Billy trăng

Vâng, ổn định và dev được lưu trữ dưới một tên miền khác nhau trong một vserver apache khác nhau. Nó sẽ không làm cho bất kỳ ý nghĩa để làm việc trên một chi nhánh dev đó là trong thư mục mọi người nhìn thấy khi họ duyệt các trang web.

Vì vậy, ý tưởng của tôi là sao chép kho lưu trữ và sau đó đồng bộ hóa chúng.

Tôi có điều gì sai ở đây không? Làm thế nào để bạn đối phó với các cấu hình như vậy?

+0

Git làm gì trông giống như "git pull" đang đồng bộ hóa ổn định từ cả hai nhánh? – Schwern

+0

Chào mừng bạn đến với Stack overflow, đây là một câu hỏi hay; Nó là tốt hơn để bình luận trực tiếp một câu trả lời hơn là đặt một bình luận như là một chỉnh sửa cho câu hỏi của bạn (như bạn đã làm cho câu trả lời của Billy). – CharlesB

Trả lời

4

Chi nhánh

Tôi nghĩ rằng bạn đang đi đúng hướng, nhưng một llittle bị nhầm lẫn với các ý tưởng của một chi nhánh. Bạn có thể hình dung một chi nhánh thành hai nhánh trên cây. Cả hai đều có cùng một thân cây, nguồn, nhưng các mẹo khác nhau. Sự khác biệt nằm giữa cùng một cơ sở mã và có thể nhỏ hoặc lớn.Khi bạn chạy lệnh git checkout <branch_name> bạn đang nói với git bạn muốn các mẹo khác nhau của cây được kích hoạt, được sao chép vào thư mục hoạt động.

Trong trường hợp của bạn, một chi nhánh có mã phát triển và một nhánh khác có mã ổn định của bạn. Để lấy mã từ chi nhánh dev vào chi nhánh web, bạn sử dụng git merge <branch_to_pull_in> Kết hợp các mẹo của hai nhánh này để nội dung của chúng giống nhau. Để biết thêm thông tin về các chi nhánh nói chung, Here là trang không phải chung chung.

Giải pháp có thể

Dưới đây là giải pháp có thể phù hợp với bạn. Có các luồng công việc có thể khác, nhưng đây là một trong những luồng công việc đơn giản nhất.

Sao lưu kho lưu trữ phát triển của bạn thành /var/www/afod/afod. Hơn từ trong vòng /var/www/afod/afod chạy git checkout web và từ thư mục của bạn, hãy đảm bảo rằng bạn đang ở trên chi nhánh dev. git branch nên có một dòng như thế này * dev.

Bây giờ bạn có hai nhánh khác nhau của cùng một kho lưu trữ được kiểm tra vào các thư mục con khác nhau. Làm công việc của bạn trong dev như bạn có. Một khi bạn cảm thấy nó ổn định, từ bên trong thư mục dev của bạn chạy git checkout web. Hơn, git merge dev. Thao tác này sẽ hợp nhất các thay đổi đó vào chi nhánh web của bạn. Bây giờ từ trong số /var/www/afod/afod chạy git pull. Điều này sẽ kéo chnages của bạn vào máy chủ sản xuất. Cả hai dev và web sẽ được kéo lên, nhưng chỉ một trong đó là đã kiểm tra sẽ nằm trong thư mục làm việc của bạn.

Khi bạn muốn làm việc trong chi nhánh nhà phát triển một lần nữa, hãy chạy git checkout dev từ trong thư mục dev.

0

Tôi nghĩ ổn định và phát triển phải là chi nhánh chứ không phải kho riêng biệt.

Đây là một hướng dẫn tuyệt vời về git cơ bản và làm thế nào một công việc đơn giản có thể làm việc: http://www.ralfebert.de/tutorials/git/

+0

OP muốn có hai bản sao khác nhau của cùng một kho lưu trữ. – CharlesB

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