Các bạn có thể hiểu được một quy trình làm việc nhóm thông qua Git theo ví dụ sau đây của mình.

Chú ý: Nếu bạn chưa có kiến thức cơ bản về git và hoàn không hiểu trong bài viết này nói gì thì xin vui lòng xem lại các bài viết trước về git của mình.

Ví dụ: Bạn được sếp giao việc sửa bugs iss53 cho project của công ty và một người khác sửa một bug khác trong project. Vậy làm sao để hai người có thể code qua lại với nhau một cách nhanh gọn và thuận tiện nhất?

Để dễ hiểu, mình sẽ quy định tên của 2 người là A và B.

Người A khi sửa bugs iss53, theo quy trình thì A sẽ phải tạo một branch mới.

$ git checkout -b iss53
Switched to a new branch "iss53"

Lúc này nhánh chính của công ty trông sẽ như này:

Làm việc nhóm qua Git - Ảnh 1

Người A làm một công việc gì đó và tạo ra một commit trên nhánh iss53.

$ git commit -a -m 'added a new footer [issue 53]'

Làm việc nhóm qua Git - Ảnh 2

Ở một nơi nào đó, Người B cũng làm tương tự như người A là tạo một branch mới tên là hotfix và làm một công việc gì đó rồi tạo ra một commit trên nhánh hotfix.

$ git checkout -b hotfix
Switched to a new branch 'hotfix'
$ vim index.html
$ git commit -a -m 'fixed the broken email address'
[hotfix 1fb7853] fixed the broken email address
 1 file changed, 2 insertions(+)

Làm việc nhóm qua Git - Ảnh 3

Sau khi đã kiểm tra kỹ càng bản vá lỗi của mình, người B quyết định hợp nhất nhánh hotfix cùng với nhánh chính (master) của công ty bằng cách chạy lệnh git merge và sau đó dùng git push để đẩy nó lên git server của công ty.

$ git checkout master
$ git merge hotfix
Updating f42c576..3a0874c
Fast-forward
 index.html | 2 ++
 1 file changed, 2 insertions(+)
$ git push

Bây giờ nhánh chính của công ty bạn trông sẽ như thế này:

Làm việc nhóm qua Git - Ảnh 4

Khi hợp nhất xong thì có thể xóa nhánh đó đi vì bây giờ nó không quan trọng nữa.

$ git branch -d hotfix
Deleted branch hotfix (3a0874c).

Nào, Bây giờ quay trở lại với người A, Vì người B đã làm xong công việc của họ và đã đẩy nó lên server git của công ty nên người A cần phải sử dụng git pull để kéo code về:

$ git checkout master
Switched to branch 'master'
$ git pull

Sau đó tiếp tục chuyển sang nhánh iss53 và sử dụng lệnh git rebase để hợp nhất nhánh master vào nhánh iss53 và làm tiếp công việc rồi tạo thêm một commit nữa trên nhánh iss53:

$ git checkout iss53
Switched to branch 'iss53'
$ git rebase master
$ git commit -a -m 'finished the new footer [issue 53]'
[iss53 ad82d7a] finished the new footer [issue 53]
1 file changed, 1 insertion(+)

Làm việc nhóm qua Git - Ảnh 5

Giả sử người A quyết định rằng công việc trên nhánh iss53 đã hoàn tất. Người A sẽ checkout về nhánh master và sử dụng lệnh git rebase để hợp nhất nhánh iss53 với nhánh master:

$ git checkout master
Switched to branch 'master'
$ git rebase iss53

Và cuối cùng xóa nhánh iss53:

$ git branch -d iss53

Cuối cùng là đẩy code lên git server của công ty:

$ git push

Tốt. Vậy là bạn đã học được cách để làm việc nhóm với người khác rồi đấy.

Từ khóa: Git

Bình luận