Tôi chính xác trong tình huống này nhưng tôi đã chọn một quy trình phức tạp hơn một chút mặc dù không nhất thiết phải phức tạp hơn với Git.
Mục tiêu lúc đầu là học cách git nên tôi đã thực hiện một số khám phá. sau đó trở lại khá nhiều quy trình công việc bạn mô tả.
Sau một thời gian, điều này trở nên khó khăn khi làm việc với một số tình huống phát sinh, nó cũng mang lại cho tôi những thói quen xấu khó có thể phá vỡ khi tôi gia nhập một đội.
Vì vậy, tôi giải quyết cho những điều sau đây:
- Kho lưu trữ cục bộ để làm việc.
- Master nhánh như một thân cây ổn định cho ứng dụng
- Một nhánh cho mỗi tính năng / cấu trúc lại, về cơ bản là một nhánh cho mỗi thay đổi khá lớn sẽ được thực hiện.
- Hợp nhất trở lại thân cây khi nhánh ổn định và tất cả các bài kiểm tra vượt qua.
Tôi cũng thiết lập một tài khoản trung tâm git nơi tôi đồng bộ hóa trung kế. Điều này cho phép tôi dễ dàng bắt đầu làm việc trên các máy tính khác nhau. Đó là do sự cần thiết nhưng cho phép tôi tìm thấy các lỗi liên quan đến môi trường mà tôi không có trên các máy tính khác. Vì vậy, bây giờ tôi tạo thói quen thử một dự án trên một hệ thống "trinh tiết" khác ít nhất một lần. Tiết kiệm cho tôi rất nhiều đau đầu khi đến lúc phải triển khai cho khách hàng.
- Tôi gắn thẻ mọi phiên bản làm cho nó vào github như một phiên bản đáng tin cậy.
- Nếu được phát hành cho khách hàng, tôi sẽ phân nhánh từ phiên bản này để tạo một thân cây ổn định thứ hai để sửa lỗi do khách hàng khai báo.
Nhiều chi nhánh lúc đầu có vẻ như quá mức cần thiết nhưng nó THỰC SỰ giúp ích rất nhiều. Tôi có thể bắt đầu một ý tưởng trong một chi nhánh, làm việc với nó trong một thời gian và khi tôi bắt đầu chạy vòng tròn, tôi đã từ bỏ và bắt đầu một chi nhánh khác để làm việc khác. Sau đó, một ý tưởng xuất hiện nơi tôi sẽ trở lại nhánh nướng và khám phá ý tưởng này. tổng thể này làm cho tôi RẤT năng suất hơn vì tôi có thể hành động chớp nhoáng và ý tưởng rất nhanh và xem nó có hiệu quả không. Chi phí chuyển đổi chi nhánh với GIT cực kỳ thấp khiến tôi rất nhanh nhẹn với cơ sở mã của mình. Điều đó nói rằng tôi vẫn phải nắm vững khái niệm rebase để làm sạch lịch sử của mình nhưng vì tôi chỉ có một mình nên tôi nghi ngờ tôi thực sự cần phải làm vậy. Đẩy nó là "tốt để học".
Khi tất cả các nhánh trở nên phức tạp thì tôi đã khám phá tùy chọn nhật ký để vẽ một cây thay đổi và xem nhánh nào ở đâu.
Câu chuyện dài, git không giống SVN, CVS hay (brrr) TFS. Sự phân nhánh rất rẻ và phạm sai lầm sẽ xóa sạch công việc thực sự khá khó khăn. Chỉ một lần tôi mất một số công việc và đó là vì tôi đã thực hiện các cam kết của mình quá lớn (xem các thói quen xấu ở trên). Nếu bạn cam kết thường xuyên, bởi những khối nhỏ, git chắc chắn sẽ là đồng minh tốt nhất của bạn.
Đối với tôi, git đã mở mang đầu óc tôi về việc kiểm soát nguồn thực sự là gì. Bất cứ điều gì khác trước đây chỉ là cố gắng để có được nó, git là người đầu tiên, mà trong tâm trí của tôi, đã có nó. Điều đó nói rằng, tôi đã không thử DVCS khác, rất có thể tuyên bố này có thể được mở rộng cho cả gia đình.
Một lời khuyên cuối cùng, dòng lệnh là bạn của bạn. Không phải nói rằng các công cụ đồ họa là không tốt, hoàn toàn ngược lại nhưng tôi thực sự đã mò mẫm git khi tôi rơi xuống dòng lệnh và tự mình thử nó. Nó thực sự được thực hiện rất tốt, dễ làm theo với một hệ thống trợ giúp rất toàn diện. Vấn đề lớn nhất của tôi là bị trói vào bàn điều khiển xấu xí trong cửa sổ cho đến khi tôi tìm thấy giải pháp thay thế.
Bây giờ tôi sử dụng cả hai, tích hợp Eclipse với Git để xem những gì đang diễn ra trong thời gian thực và thực hiện một số thao tác như tìm khác biệt, khám phá lịch sử cho một tệp, v.v. Và dòng lệnh để phân nhánh, hợp nhất, đẩy, lấy và các cây nhật ký phức tạp hơn . một số kịch bản cơ bản và tôi chưa bao giờ làm việc hiệu quả liên quan đến kiểm soát nguồn và tôi chưa bao giờ có quá nhiều quyền kiểm soát đối với nguồn của mình.
Chúc may mắn, hy vọng điều này sẽ giúp.