2011-03-23 36 views
23

Tôi đang sử dụng git và github, và tôi vừa hoàn thành phiên bản 1.0 của ứng dụng iOS. Từ đây, tôi tự hỏi làm thế nào git có thể phục vụ tốt nhất cho tôi.Git: Quản lý từng phiên bản ứng dụng của tôi?

Tôi thực sự đang tìm kiếm một phương pháp hay nhất ở đây và những gì người khác đề xuất để quản lý các phiên bản chính.

Tôi có nên tạo chi nhánh mới cho mỗi phiên bản mới, chẳng hạn như cho 1,1, 1,5, 2,0, v.v ... không? Hay tôi chỉ nên tiếp tục đẩy tới nhánh chính? Nếu vậy, làm thế nào để làm điều này?

Trả lời

26

tôi sẽ khuyên bạn sử dụng tags (tag tutorial)

Từ chi nhánh tổng thể của bạn vì bạn đã làm xong v1.0 thêm một thẻ gọi v1.0.

git tag -a -m "Tagging release 1.0" v1.0 

Bằng cách này bạn luôn có thể quay trở lại một phiên bản cụ thể bất cứ lúc nào bằng cách gọi git checkout [tag_name]

Một thực tế phổ biến là sử dụng các chi nhánh để làm việc trên các tính năng cho đến khi họ được ổn định.

git checkout -b [feature-branch] 

Điều đó tạo ra một chi nhánh mới có tên là bất kỳ trong số [feature-branch] và kiểm tra. Đảm bảo thực hiện việc này từ nơi bạn muốn bắt đầu làm việc trên đối tượng địa lý (thường là từ master).

Sau khi ổn định, chúng có thể được hợp nhất một cách an toàn thành master. Từ master chạy:

git merge [feature-branch] 

Bằng cách này, chi nhánh master của bạn luôn ở trạng thái hoạt động và chỉ các mục hoàn chỉnh mới được thêm khi sẵn sàng. Điều này sẽ cho phép bạn giữ bản sao làm việc của ứng dụng mọi lúc (lý tưởng là anyways) để thử nghiệm, v.v.

Bạn có thể sử dụng các nhánh cho mỗi phiên bản của ứng dụng, tuy nhiên sử dụng thẻ làm cho nó để bạn không thể hợp nhất một phiên bản chi nhánh khác một cách tình cờ.

+2

Đồng ý. Kiểm tra tệp 1.0 build và dsym của bạn và thêm thẻ. Nếu trong tương lai bạn đang làm việc trên phiên bản 2.0 và phát hiện ra rằng bạn cần phải phát hành một số thay đổi là 1.1, bạn luôn có thể tạo ra một lệnh cấm từ thẻ đó.Không cần một chi nhánh cho mỗi bản phát hành nhưng bạn có thể muốn hợp nhất nhánh phát triển chính của bạn thành một nhánh phát hành mỗi khi bạn tạo một quảng cáo hoc để bạn có một lịch sử rõ ràng về mã được phát hành để thử nghiệm và công việc không ổn định đang được tiến hành. – Jonah

+0

Ok, vì vậy khi tôi thêm thẻ 1.0, làm cách nào để bắt đầu làm việc trên 1,1? Tôi có đặt một thẻ khác không? Bối rối về khái niệm này. –

+1

Để xây dựng trên bình luận của Jonah, bạn chỉ muốn một nhánh cho một phiên bản nếu bạn đang duy trì nó một cách riêng biệt. Ví dụ, nếu master đang làm việc với phiên bản 3.0 nhưng bạn tìm thấy một số lỗi trong phiên bản 2.0, bạn có thể tạo một nhánh bảo trì bắt đầu từ thẻ 2.0, cuối cùng là phiên bản 2.1, và có thể hợp nhất nhánh đó vào nhánh chính của bạn để lấy sửa lỗi trong phiên bản sắp tới 3 là tốt. – Cascabel

1

Tùy thuộc vào việc bạn có muốn duy trì các phiên bản cũ hơn chỉ với sửa lỗi hay không. Nếu bạn muốn thêm sửa lỗi cho 1.0 trong khi thêm các tính năng mới vào 2.0, bạn tạo một nhánh 2.0, hợp nhất tất cả các sửa lỗi vào cả hai nhánh và các tính năng thành 2.0. Nhưng đối với mỗi bản phát hành trong mỗi nhánh bạn chỉ cần là một thẻ. Chỉ cần nhớ chi nhánh từ chi nhánh lâu đời nhất mà bạn dự định hợp nhất trở lại.

1

Bạn cũng có thể sử dụng cơ chế GitHub releases mới. Nó là một cách để quản lý các phiên bản phần mềm với GitHub.

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