Tải bản đầy đủ (.docx) (22 trang)

QUẢN LÝ MÃ NGUỒN VÀ LÀM VIỆC NHÓM BẰNG GITHUB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 22 trang )

Mục lục
I. KHÁI NIỆM GIT.....................................................................................................................3
1.1.

Với GIT bạn có thể thực hiện các công việc như sau:......................................................3

1.2.

Quản lý mã nguồn bằng và làm việc nhóm bằng cơng cụ GIT.........................................4

1.3.

Tại sao lại phải cần GIT....................................................................................................4

1.4.

Cơ chế làm việc của GIT khi sử dụng quản lý dự án........................................................4

II. CÁC THUẬT NGỮ.................................................................................................................5
2.1.

Branch...............................................................................................................................5

2.2.

Commit..............................................................................................................................5

2.3.

Check out..........................................................................................................................6


2.4.

Fetch..................................................................................................................................6

2.5.

Fork...................................................................................................................................6

2.6.

Head..................................................................................................................................6

2.7.

Index..................................................................................................................................6

2.8.

Master................................................................................................................................7

2.9.

Merge................................................................................................................................7

2.10.

Origin.............................................................................................................................7

2.11.


Pull.................................................................................................................................7

2.12.

Push...............................................................................................................................7

2.13.

Rebase...........................................................................................................................7

2.14.

Remote...........................................................................................................................8

2.15.

Repository.....................................................................................................................8

2.16.

Stash..............................................................................................................................8

2.17.

Tags...............................................................................................................................8

2.18.

Upstream.......................................................................................................................8


III.

CÁC LỆNH GIT CƠ BẢN...................................................................................................9

3.1.

Git config..........................................................................................................................9

3.2.

Git init...............................................................................................................................9

3.3.

Git clone............................................................................................................................9

3.4.

Git status...........................................................................................................................9

3.5.

Git add.............................................................................................................................10


3.6.

Git commit......................................................................................................................10

3.7.


Git push/git pull..............................................................................................................10

3.8.

Git branch........................................................................................................................11

3.9.

Git checkout....................................................................................................................11

3.10.

Git stash.......................................................................................................................11

3.11.

Git merge.....................................................................................................................11

3.12.

Git reset.......................................................................................................................12

3.13.

Git remote....................................................................................................................12

IV.

QUẢN LÝ DỰ ÁN BẰNG GITHUB................................................................................13


4.1.

Tạo một repository..........................................................................................................13

4.2.

Thêm thành viên..............................................................................................................14

4.3.

Tạo một project...............................................................................................................15

4.4.

Tạo Sprint – Milestone....................................................................................................16

4.5.

Tạo Task – Issue.............................................................................................................17

4.6.

Quản lí các task...............................................................................................................18

V. CÁCH QUẢN LÍ CODE........................................................................................................20
5.1.

Lấy code về máy.............................................................................................................20


5.2.

Tải code lên Github.........................................................................................................20


I. KHÁI NIỆM GIT
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.
I.1.


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, …)







I.2.

Quản lý mã nguồn bằng và làm việc nhóm bằng cơng cụ GIT

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ả.
I.3.

Tại sao lại phải cần GIT

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ể 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ý.
I.4.

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 hồ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).


II. CÁC THUẬT NGỮ
II.1. Branch

Branch được hiểu là các nhánh. Các Branch sẽ tương ứng với các phiên bản
cụ thể trong kho lưu trữ. Branch cho phép người dùng có thể dễ dàng truy cập, theo
dõi các thay đổi của các phiên bản, từ đó thử nghiệm hoặc lựa chọn sử dụng phiên
bản cũ hơn. 
II.2. Commit


Commit là thuật ngữ thể hiện một thời điểm cụ thể trong lịch sử thực hiện
code của bạn. Các dự án sẽ có nhiều thời điểm cụ thể trong lịch sử nên sẽ có nhiều
code.

II.3. Check out

Khi sử dụng git, các lập trình viên sẽ dùng lệnh checkout để chuyển giữa các
nhánh hay còn gọi là các branch. Chỉ cần nhập lệnh git checkout + tên Branch, bạn
đã có thể chuyển đến nhánh mong muốn. Đồng thời, lệnh check out cũng cho phép
người dùng chuyển về branch (master Branch). 
II.4.

Fetch

Sử dụng lệnh Fetch sẽ cho phép bạn nạp và tải các bản sao trên hệ thống lưu
trữ và tải các tệp nhánh về máy tính cá nhân. Bạn có thể sử dụng lệnh Fetch để lưu
các thay đổi mới nhất vào kho lưu trữ. Fetch cho phép bạn có thể lưu trữ nhiều
nhánh trong cùng một thời điểm. 
II.5.

Fork

Fork là thuật ngữ thể hiện các bản sao của một kho lưu trữ. Tiện ích fork cho
phép người dùng – các lập trình viên có thể thử nghiệm các thay đổi. Nhờ việc sử
dụng trên bản sao nên người dùng có thể thoải mái thay đổi mà không lo ảnh
hưởng tới các dự án chính. 
II.6.

Head

Các nhánh trong Git sẽ bao gồm các commit. Và các commit ở đầu 1 nhánh sẽ
được gọi là Head. Một head sẽ tương ứng với một commit mới nhất trong hệ thống
lưu trữ. 
II.7.


Index

Index là thuật ngữ được sử dụng khi bạn thêm/xóa/thay đổi một file dữ liệu
nào đó. Tuy nhiên, file dữ liệu này vẫn sẽ cần nằm trong thư mục cho đến khi bạn


sẵn sàng commit các thay đổi. Bạn có thể phân biệt các thay đổi dựa vào màu sắc
của commit. Các thay đổi có màu xanh tức là đã sẵn sàng để được thay đổi, còn
màu đỏ là chưa sẵn sàng. 
II.8.

Master

Đây là các nhánh chính trong kho lưu trữ của phần mềm Git mà bạn đang sử
dụng. Nhánh master sẽ bao gồm các thay đổi và commit trong thời gian gần đây
nhất. 
II.9.

Merge

Trong Git, người dùng có thể dùng lệnh Git Merge để bổ sung các thay đổi từ
branch này sang branch khác. Người dùng chỉ cần dùng lệnh Merge và pull
requests là đã có thể dễ dàng kéo các yêu cầu từ các nhánh khác nhau. 
II.10.

Origin

Đây là phiên bản mặc định của hệ thống lưu trữ. Origin sẽ đóng vai trị liên
lạc với nhánh chính. Vì thế, người dùng có thể dùng lệnh Git push Origin master

để thay đổi tới nhánh chính. Việc thay đổi có thể diễn ra cục bộ.
II.11.

Pull

Pull là việc người dùng đề xuất các thay đổi mới cho Master Branch. Đây là
tính năng phù hợp với các dự án cần làm việc nhóm. Người thực hiện có thể dùng
tính năng Pull Request để u cầu người có nhiệm vụ thực hiện bảo trì kho lưu trữ
để xem xét các thay đổi của hệ thống. 
Người dùng có thể dùng lệnh Git Pull để thay đổi lịch sử lưu trữ vào các
nhánh chính. 
II.12.

Push


Lệnh Push được sử dụng khi người lập trình cần cập nhật các branch từ xa.
Đồng thời, Git Push cũng được dùng cho những thay đổi mới nhất mà người sử
dụng đã commit.
II.13.

Rebase

Nếu muốn phân tích, di chuyển các commit, rebase sẽ là lệnh phù hợp. Bạn
cũng có thể sử dụng lệnh Git rebase để thoát khỏi commit hoặc hợp nhất 2 nhánh
khác nhau.
II.14.

Remote


Remote cũng là một kho lưu trữ. Tuy nhiên, đây là kho lưu trữ từ xa. Remote
là một bản sao của một nhánh, có cấu trúc giao tiếp ngược dòng với nhánh gốc
cũng như các nhánh khác có trong kho lưu trữ. 
II.15.

Repository

Đây là thuật ngữ thể hiện kho lưu trữ GIT với các tập của dự án. Trong kho
lưu trữ Repository có thể chứa các branch, tags và các commit. 
II.16.

Stash

Lệnh Stash cho phép người dùng có thể loại bỏ các thay đổi hiện có tại mục
đang lựa chọn. Sau đó, bạn có thể xóa các stashes. Trong trường hợp bạn muốn
tạm dừng hoạt động của mình trong thời gian ngắn, lệnh Stash sẽ là lựa chọn hữu
ích dành cho bạn.  
II.17.

Tags

Các tags được sử dụng để theo dõi commit quan trọng trong hệ thống. Người
dùng có thể sử dụng các tags để chú thích commit, giúp việc tra cứu đối tượng
nhanh chóng và đầy đủ hơn. 
II.18.

Upstream


Upstream là thuật ngữ để chơi nơi bạn có thể push các thay đổi trong nhóm

chính


III. CÁC LỆNH GIT CƠ BẢN
III.1. Git config

Được sử dụng để thiết lập tên đăng nhập và email của người dùng trong main
configuration file. Bạn có thể dễ dàng kiểm tra tên và kiểu email bằng cách dùng
lệnh: git config – global user.name và git config – global user.email. 
Để cập nhật một tên và email mới, bạn có thể dùng lệnh: git config – global
user.name/email = “name/email”. 
III.2.

Git init

Bạn có thể dùng lệnh Git init để tạo ra một git repository trong 1 dự án mới
hoặc đã có sẵn. Lệnh này được sử dụng trong thư mục gốc của dự án. 
III.3.

Git clone

Lệnh Git clone cho phép người dùng Copy 1 git repository từ kho lưu trữ từ
xa. Bạn chỉ cần dùng lệnh: git clone <:clone git url:>. 
III.4.

Git status

Lệnh git status được sử dụng khi người dùng cần check trạng thái của các file
đã được sửa đổi trong thư mục trong quá trình làm việc. Chẳng hạn như bạn có thể
kiểm tra các thay đổi từ lần commit gần đây nhất. 



III.5.

Git add

Git Add được sử dụng khi cần đổi Stage hoặc index đến thư mục bạn đang
làm việc. 

III.6.

Git commit

Lệnh git commit thực hiện lưu vào CSDL Git toàn bộ nội dung chứa trong
index (vùng staging) và kèm theo nó là một đoạn text thông tin (log) mô tả sự thay
đổi của của commit này so với commit trước. Sau khi commit con trỏ HEAD tự
động dịch chuyển đến commit này (Trong nhánh hiện tại). 
III.7.

Git push/git pull

Lệnh Push hay pull cho phép người sử dụng có thể thay đổi tới các kho lưu
trữ remote. Nếu bạn đã thêm các thay đổi và muốn đưa các thay đổi đó lên đầu,
bạn có thể dùng lệnh này để cập nhật và apply các thay đổi đó thông qua việc code.


Bạn có thể dùng bằng code: git pull <:remote:> <:branch:> and git push <:remote:>
<:branch:>

III.8.


Git branch

Bạn có thể dùng lệnh Git branch để liệt kê tất cả các nhánh trong hệ thống.
Cách dùng rất đơn giản, bạn có thể dùng Git Branch hoặc Git Branch-a. 
III.9.

Git checkout

Lệnh git checkout thường bị nhầm với lệnh git branch. Tuy nhiên, đây lại là 2
lệnh hoàn tồn khác nhau. Lệnh Checkout cho phép người dùng có thể chuyển
sang một nhánh khác bằng cách dùng code: git checkout <: branch:> hoặc ** _
git checkout -b <: branch:>
III.10. Git stash

Đây là lệnh có tác dụng lưu các thay đổi trong trường hợp bạn khơng muốn
commit ngay lúc đó. Bạn chỉ cần sử dụng lệnh này trong thư mục làm việc để thực
hiện việc lưu thay đổi. 


III.11. Git merge

Lệnh git stash được sử dụng khi người dùng cần nối 2 nhánh với nhau. Bạn
cần dùng code: git merge <:branch_merge:>. Hãy lưu ý chọn nhánh cần chọn
trước khi code nhé. 
III.12. Git reset

Nếu bạn đã đưa một tệp tin vào mục Staging Area và muốn loại bỏ tệp tin đó,
bạn có thể dùng lệnh reset thơng qua đường code: git reset HEAD file_name
III.13. Git remote


Git remote cho phép người dùng kiểm tra hoặc thêm các kho lưu trữ trực
tuyến. Bạn có thể sử dụng lệnh này để liệt kê thơng qua đường code: git remote
add <: remote_url:>


IV. QUẢN LÝ DỰ ÁN BẰNG GITHUB
IV.1. Tạo một repository
Đầu tiên, tạo một repo cá nhân với tên demo.

Như vậy là ta đã có một repo để có thể lưu trữ code và quản lí task


IV.2. Thêm thành viên
Để 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.


IV.3. Tạo một project
Tiến hành tạo một Project bằng cách chọn tab Project -> Create a project:

Sau đó tiến hành thêm những Column như To do , In Progress, Done cơ bản:


IV.4. Tạo Sprint – Milestone
Github cung cấp Milestone để quản lí một phase với các mốc thời gian khác nhau.
Vì dự định xây dựng blog của mình có rất nhiều chức năng, nên ta sẽ tiến hành chia thành
nhiều Phase nhỏ, mỗi phase sẽ cập nhật những chắc năng nhất định. Phase 1 sẽ bao gồm
những công việc như sau:
1. Tạo Landing page cho blog

2. Chức năng đăng nhập, tạo bài viết
3. Chức năng comment bài viết
Ta sẽ chia nhỏ các task này thành những Milestone khác nhau, trong Milestone 1 sẽ
gồm Task 1 và 2. Tạo Milestone như sau -> Issues -> Milestones -> Create Milestones Ta
sẽ thực hiện 2 task này trong vòng 1 tuần nên sẽ đặt Milestone này là Week 1 và chọn
ngày deadline là 1 tuần sau đó.


IV.5. Tạo Task – Issue
Tiếp theo tiến hành tạo những task nhỏ -> Issues -> New Issue. Trong phần tạo
issue có thể chọn những thành phần như:
Assignees - Vì dự án cá nhân nên sẽ giao task cho chính mình
Labels - Có thể lựa chọn những label có sẵn của Github hoặc tự tạo label cho mình, ở đây
ta sẽ chọn label cho 2 task là good fist issue, bạn cũng có thể tạo những label như todo ,
in progress, …
Projects - Ta sẽ chọn project là DEMO như đã tạo ở trên
Milestone - Vì 2 task này thuộc Milestone Week 1 nên ta sẽ chọn Week 1
Sau khi tạo ta được 2 task như sau:


IV.6. Quản lí các task
Lúc này khi vào phần quản lí Project, sẽ thấy 2 task vừa được tạo nằm trong Project
này, việc còn lại sẽ là kéo những task này vào những vị trí tương ứng như khi làm việc
với Trello


Việc cịn lại là khi hồn thành các task thì sẽ commit code và đồng thời close issue.
Trong khi làm việc nếu có task nào có vấn đề có thể chuyển label hành question hoặc
comment trực tiếp trong issue đó.




×