"Branch early, branch often"
Git
51
White

Huy Trần viết ngày 06/05/2016

Đây là một bài mình viết trên blog CodeDaily, mình copy sang đây để chia sẽ cho mọi người.

Có một câu nói mà các developer khi làm việc trên Git phải thuộc nằm lòng, đó là:

Branch early, branch often

Ý nghĩa của câu nói trên tức là bạn cần phải tạo cho mình thói quen sử dụng branch, khi làm bất kì việc gì (một task mới, một feature mới,...) thì việc đầu tiên luôn là: Tạo một branch mới.

Vì sao phải tạo branch? Tui làm trên branch master không được hả?

Ờ thì chả ai cấm bạn làm trực tiếp trên master branch, nhưng việc này tiềm ẩn nhiều nguy cơ khó lường. Ví dụ như: Khi bạn đang hì hục làm 1 chức năng nào đó, bất ngờ KH gọi và bảo có 1 bug nghiêm trọng cần phải fix gấp, bạn sẽ làm gì? Dùng stash để đẩy hết code đang làm sang một bộ nhớ tạm thời, hoặc backup code đang làm rồi revert toàn bộ để ưu tiên fix bug cho KH trước? Những cách này tất nhiên giải quyết được vấn đề, nhưng không hay cho lắm, và tất nhiên sẽ luôn gây ra một số rắc rối nhất định.

Để tránh những trường hợp như trên, chúng ta nên tập thói quen tạo branch. Để hiểu rõ hơn về cách làm việc với branch, hãy xem qua cách giải quyết vấn đề được nêu ra ở ví dụ trên:

s1

Bắt đầu ngày làm việc, bạn chọn làm một chức năng mới. Việc đầu tiên cần làm là tạo một branch mới bằng câu lệnh git checkout với tham số -b

s2

Trong quá trình làm việc, bạn nên commit code khi hoàn thành một số chức năng nhất định. Nhưng chưa cần vội push.

s3

Sẽ có những lúc đang làm cắm cúi và anh KH từ đâu lao đến ném cho một đống việc thế này.

s4

Và tất nhiên bạn không thể nào từ chối dược, đành quay sang fix trước cho lão ấy. Khi đó, chỉ cần chuyển về branch master (lưu ý phải commit hết code lên branch đang làm trước khi chuyển branch) bằng câu lệnh checkout

s5

Mục đích của việc chuyển về branch master là để khi làm chức năng mới, sẽ không dính dáng gì đến các chức năng đang làm dở. Và bạn cũng nên pull thường xuyên để lấy code mới nhất về trước khi bắt đầu thực hiện chức năng mới. Từ master, bạn tạo ra một branch mới:

s6

Sau khi đã hoàn thành công việc, bạn hãy commit lên branch đó:

s8

Sau đó chuyển về master và dùng lệnh git merge để nhập các thay đổi từ branch vừa xong vào master.

s9

Lúc này, bạn có thể push code lên và thông báo với lão KH rằng mình đã fix xong các yêu cầu của lão. Sau đó quay trở về branch mà bạn đang làm dở công việc trước đó.

s10

Tiếp tục code, đến khi hoàn thành thì commit lên.

s11

Và quay về master, dùng lệnh git merge để nhập các chức năng vừa làm xong vào master. Và cuối cùng là push code. Vậy là công việc của bạn đã hoàn thành :D

s12

Mặc dù sử dụng branch có vẻ tốn rất nhiều thao tác, nhưng đây là một việc hết sức cần thiết. Để tiện lợi hơn, thay vì gõ lệnh bằng tay, bạn có thể sử dụng một số công cụ như SourceTree, rất trực quan và rất mạnh.

Để kết thúc bài viết, các bạn hãy làm một bài tập nho nhỏ: Nhìn vào cây branch dưới đây và hình dung lại những thao tác đã làm trong bài ví dụ trên, tương ứng với với mỗi một node.

s12b

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

102 bài viết.
1440 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
145 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
145 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
96 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
96 16
Bài viết liên quan
White
48 7
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết gần 3 năm trước
48 7
White
10 2
Xin chào các bạn. Chắc hẳn mỗi chúng ta đều đã từng phát triển app sử dụng API của bên thứ 3, và chắc mọi người đều biết là hầu hết các API service...
Hải Nguyễn viết 1 năm trước
10 2
White
5 7
Thông thường một feature mới thường được làm trên một nhánh (branch) riêng và thường xuyên pull các cập nhật từ nhánh master trong quá trình đấy. S...
Lơi Rệ viết hơn 2 năm trước
5 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
102 bài viết.
1440 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!