Dù có triển khai CI hay không thì Version Control vẫn luôn là thứ đầu tiên mà chúng ta phải hướng đến. Nhiều khi bạn không để ý tới nó do việc áp dụng Version Control vào các dự án đã trở thành mặc định, bắt buộc phải có. Nhưng liệu bạn đã thực sự thông thạo và sử dụng nó một cách hiệu quả hay chưa?
Có rất nhiều loại Version Control System, nhưng trong bài viết này tôi chỉ giới hạn ở Distributed Version Control, và công cụ chúng ta sẽ sử dụng là Git. Có lẽ không cần phải nói nhiều tới lí do để lựa chọn Git vào thời điểm này. Nhưng có Git rồi, sử dụng Git làm sao cho hiệu quả cao nhất mới là vấn đề chúng ta quan tâm và cần thảo luận ở đây.
Menu
Git – Tập trung nhưng phân tán
Tại sao lại nói vậy? Bản thân Git là một Distributed Version Control, nhưng mỗi khi Pull – Push, hay Deploy dự án, hoặc chạy CI Server, chúng ta thường lấy Source Code từ 1 Repository trung tâm, thường là Remote Repository với cái tên quen thuộc – Origin. Nó vừa đảm bảo tính phân tán trong quản lí Source, tránh rủi ro nhưng cũng tạo sự thuận lợi về mặt quản lí tập trung công việc nên ta coi đó là Repository trung tâm Có lẽ 95% trong chúng ta dùng ít nhất một dịch vụ quản lí Git như Github, Bitbuket hay GitLabs. Điều đó chẳng có gì sai, mà hoàn toàn đúng đắn để tiết kiệm chi phí vận hành cho hệ thống Version Control.
Git – Ai nên dùng?
Tôi nghĩ rằng dù bạn là ai, tổ chức nào, nếu bạn muốn sử dụng và quản lí Source Code của mình, thậm chí tài liệu một cách hiệu quả, hãy dùng Git. Nó phù hợp với mọi người, mọi loại dự án.
Git – Sử dụng Git như thế nào để đạt hiệu quả?
Tôi sẽ không nói tới việc bạn phải sử dụng dòng lệnh của Git hay sử dụng các Tools Git GUI thì mới đem lại hiệu quả. Git chỉ là công cụ, tư duy mới quyết định việc sử dụng Git có hiệu quả hay không. Vâng, điều tôi muốn nói tới đó chính là Git Flow, hay nhiều người có thể đã nghe tới “Github Flow” nhưng nó được khuyến nghị khi bạn sử dụng Github, tất nhiên bạn vẫn có thể áp dụng nó cho các công cụ quản lí Git khác. Vậy một Flow như thế nào sẽ đem lại hiệu quả? Dưới đây là cách mà chúng tôi áp dụng. Nói thằng đây không phải là cách chúng tôi nghĩ ra, nhưng chúng tôi nghĩ nó phù hợp và hiệu quả nhất với chúng tôi tại thời điểm hiện tại.
Nếu bạn còn băn khoăn về bức hình trên, hãy tham khảo bài viết dưới đây. Đó là mô hình mà chúng tôi đang áp dụng cho các dự án của mình
A successful Git branching model
Lời Kết: Version Control là một mắt xích vô cùng quan trọng trong việc khiển khai hệ thống CI. Thiếu nó coi như việc xây dựng hệ thống CI trở lên vô nghĩa và thừa thãi.