Trong một dự án thực tế sẽ có nhiều thành viên cùng tham gia thực hiện công việc. Làm sao để quản lý việc code của các thành viên hiệu quả, không mất thời gian. Câu trả lời đó là sử dụng công cụ quản lý mã nguồn như svn, team foundation, git,…Trong bài viết này tôi sẽ hướng dẫn các bạn học lập trình sử dụng và làm việc với GIT để quản lý mã nguồn trong làm việc nhóm hiệu quả.
Tại sao lại phải cần GIT
Mục lục
Bình thường sau khi giao công việc cho từng lập trình viên, trưởng nhóm có thể yêu cầu các thành viên gửi lại để ghép vào dự án. Cách làm này rất thủ công và gây ra nhiều sai sót vì có thể có nhiều phần liên quan đến nhau. Bên cạnh đó cách làm này có thể dễ đến sự xung đột khi nhiều người cùng làm việc trên 1 file (conflict) gây mất code, lỗi chương trình. Khi sử dụng GIT chúng ta sẽ khắc phục được những vấn đề trên, lấy code từ các thành viên chỉ bằng 1 cú kích chuột, chia thành nhiều phiên bản tuỳ theo từng thời điểm để quản lý.
GIT là gì ?
GIT là một hệ thống quản lý phân tán cho phép người quản lý mã nguồn một cách dễ dàng, trực tuyến và nhiều người có thể sử dụng chung tài nguyên.
Với GIT bạn có thể thực hiện các công việc như sau:
- Là công cụ giúp quản lý source code được tổ chức theo dạng dữ liệu phân tán (distributed)
- Giúp theo đồng bộ source code của nhóm làm việc chung với nhau lên 1 server ( remote)
- Hỗ trợ các thao tác kiểm tra source code của dev trong quá trình làm việc (Diff, Check modifications, ShowLog, …)
- …
Cơ chế làm việc của GIT khi sử dụng quản lý dự án
Mô hình hoạt động của GIT cần nắm một số khái niệm:
- Repository (repo): là nơi chứa source code.
- Remote: server online.
- Local: server local trên máy.
- Working copy: nơi làm việc trực tiếp trên máy local.
Chúng ta tổ quản lý source code trên máy sẽ được lưu trữ trong local repository. Khi có internet chúng ta có thể “đồng bộ” local repo lên online, tức là sync lên remote repo. Khi trong team hoàn thành các tính năng và đã sync lên cho server online ( remote repo) thông qua các thao tác ( commit & push).
Thao tác cơ bản của một lập trình viên khi hoàn thành 1 tính năng:
- Commit: Lưu các thay đổi từ thư mục đang làm việc (working coppy) vào server local (local repo)
- Push: Cập nhật các thay đổi từ server local ở máy(local repo) lên server online (remote repo)
Các thành viên trong team cần lấy về sử dụng cần làm các thao tác:
- Fetch: Để thực hiện đồng bộ mọi thứ thay đổi mới nhất từ server online (remote repo) về server local (local repo) chúng ta sử dụng lệnh fetch (git fetch)
- Pull: Sau đó để “áp dụng” các thay đổi đó vào source code đang sử dụng. Có nghĩa là là cập nhật từ server local (local repo) vào thư mục đang làm việc (working copy) (git pull)
Các thao tác sử dụng cho GIT
Lệnh
Chức năng
Clone
- Lấy source từ server về server local của máy (local repo) của người dùng.
pull
- Cập nhập source từ server local qua working copy.
commit
- Thêm các thay đổi từ working copy vào sever local.
push
- Cập nhập các thay đôi từ server local lên server online (remote repo)
Checkout
- Đổi từ branch này sang branch khác. Cập nhật tới 1 reversion (Mã Hash)
Sử dụng GIT vào triển khai dự án như thế nào ?
Để sử dụng cho quá trình triển khai dự án chúng ta sử dụng khái niệm branch của GIT.
branch: được hiểu là 1 nhánh của GIT, và được các lập trình viên tách ra khi cần thiết. Mục đích để đảm bảo độ ổn định của source code tại 1 thời điểm và tránh việc sử dụng(apply) các code không cần thiết vào.
Đối vs GIT mỗi repo đều thuộc 1 nhánh nhất định ( mặc định sẽ có nhánh: master remote)
1. Tạo dự án với GITHUB
Tạo tài khoản và đăng nhập vào github: https://github.com
Sau khi đăng nhập thành công để tạo 1 dự án quản lý trên GIT các bạn chọn nút dấu + góc trên bên phải như giao diện dưới:Sau đó thực hiện điền tên dự án, mô tả và các thông số liên quan như sau:
Sau đó nhấn nút “Create repository” để chính thức tạo ra 1 dự án quản lý trên GIT. Địa chỉ sau khi tạo thành công trong hướng dẫn này là:
1 |
https://github.com/dangbq/LapTrinhCoBan |
Thực hiện đồng bộ tài nguyên trên GIT theo địa chỉ trên có 2 cách:
- Cách 1: Đồng bộ tài nguyên từ server local xuống thư mục làm việc luôn
1 |
git clone https://github.com/dangbq/LapTrinhCoBan |
- Cách 2: Tạo thư mục mới khởi tạo đưa vào server local sau đó mới đưa lên server trực tuyến (remote) của GIT
1 2 3 4 5 6 7 8 9 10 11 |
//Tạo 1 thư mục mới để chứa tài nguyên làm việc, sau đó di chuyển vào thư mục đó bằng dòng lệnh git init //Thực hiện thêm 1 file vào trong server local của GIT git add "demo.txt" //Thực hiện lưu thay đổi vào server local git commit -m "Tao moi file"; //Thực hiện đưa tài nguyên lên server online (remote) git remote add origin https://github.com/dangbq/LapTrinhCoBan |
Tuỳ theo yêu cầu có thể bạn sẽ cần phải nhập username và password đăng nhập của tài khoản git của bạn để đưa dữ liệu lên. Sau đó thực hiện câu lệnh đưa lên nhánh chính (master) của git sẽ được kết quả như sau:
1 |
git push -u origin master |
Dự án sẽ có thêm file mới thêm nếu thực hiện thành công như hình dưới:
2. Thêm thành viên vào team để làm việc nhóm
Để thêm thành viên vào Setting của dự án sau đó nhấn nút Invite như hình vào nhập vào email hoặc username Github.
3. Một số câu lệnh hữu ích khác trên GIT
- Thực hiện kiểm tra các branch (nhánh) thực hiện lệnh sau:
1 |
$ git branch |
- Tạo một branch mới trên Git:
1 |
$ git branch <branchname> |
- Di chuyển đến một branch mới trên Git:
1 |
$ git checkout <branch> |
- Xoá thông tin một branche trên Git:
1 |
$ git branch -d <branchname> |
- Giải quyết xung đột bằng merge trên Git:
Bây giờ, hãy tích hợp thay đổi tại branch bran2 vào master. Trước tiên, sau khi đã checkout trên branch master, thực hiện merge branch bran2.
1 2 3 |
$ git checkout master Switched to branch 'master' $ git merge bran2 |
Tham khảo thêm về git theo 2 địa chỉ dưới đây:
https://backlog.com/git-tutorial/vn/intro/intro1_1.html và https://www.atlassian.com/git/tutorials/install-git
Hy vọng qua bài viết trên đã giúp bạn hiểu và thao tác với một số lệnh quan trọng trên Git để giúp quản lý mã nguồn dự án của bạn được hiệu quả.
Các học viên tham gia học lập trình tại Stanford sẽ được dạy và hướng dẫn sử dụng công cụ quản lý mã nguồn trong quá trình học, làm dự án. Để có kỹ năng tốt tham gia dự án thực tế. Xem ngay khoá lập trình qua dự án cùng chuyên gia Stanford: tại đây