Git cơ bản cho tester: Các câu lệnh đủ dùng hằng ngày

⏱︎

Read time:

5–7 minutes
Minh hoạ tester sử dụng Git để quản lý phiên bản và cộng tác

Để làm việc nhóm, bạn bắt buộc phải biết về Git👌

Git là gì?

Git là hệ thống quản lý phiên bản cho 1 project. Nó giúp nhiều người làm việc trên cùng một project, thêm sửa xoá file, lưu lịch sử, review…

Ví dụ
Tester thêm một test case automation vào project. Git ghi nhận file nào đã thay đổi và nội dung nào được thêm; sau đó các member khác có thể review, chỉnh sửa…

Với 1 project, git quản lý bằng 2 vùng chính:

  • local repo: là các file trên máy bạn, mỗi bạn nhìn thấy
  • remote repo: là các file “online”, nơi cả team sẽ nhìn thấy
Ví dụ
Bạn thêm hàm fuction addNewCustomer() vào file A, nhưng bạn chưa đẩy lên. Thì lúc này, chỉ bạn thấy hàm đó ở laptop của bạn, những người khác trong team không thể thấy được. Chỉ khi nào bạn push lên thì họ mới thấy phần thay đổi mới đó, sau khi họ pull về

Các khái niệm về push và pull sẽ được nói tiếp ngay ở phần sau

Các khái niệm cần hiểu trước

Khái niệmHiểu đơn giản
RepositoryThư mục project mà cả team bạn làm chung. Gọi tắt là repo
cloneBạn kéo thư mục repo bên trên về máy bạn thì gọi là clone. Sau khi clone, git tạo ra 1 repo local trên máy bạn, là bản sao của repo remote mà bạn vừa kéo về
PullLà hành động bạn “kéo” các phần thay đổi mới từ repo remote về repo local
CommitBạn “đóng gói” phần thay đổi lại, nhưng chưa đẩy lên remote
PushBạn đẩy các phần đã được commit lên remote, lúc này người khác sẽ thấy được
BranchNhánh làm việc riêng để không sửa trực tiếp nhánh chính

1. git clone — tải project về máy

git clone https://github.com/company/automation-tests.git
cd automation-tests

git clone tạo một bản sao của repository trên máy, bao gồm cả lịch sử và thông tin remote. Lệnh này thường chỉ cần chạy một lần cho mỗi project.

2. git branch và git switch — làm việc với branch

Lưu ý
Branch (nhánh) là 1 khái niệm vô cùng quan trọng khi làm việc nhóm. Source code sẽ được chia thành nhiều nhánh, trong đó nhánh default tên là main hoặc master. Nhánh này không ai được đẩy code lên trực tiếp.

Thông thường, mỗi người code ở 1 nhánh khác nhau, ví dụ branch_a hoặc branch_b. Code xong thì push nhánh đó lên remote. Cuối cùng thì tạo Pull Request (PR) vào nhánh chính của repo. PR sẽ được giải thích ở phần dưới đây.
# xem tất cả các nhánh hiện có của repo
git branch 

# Chuyển sang branch main
git switch main

# Chuyển sang branch "feature/create-new-vip-user"
git switch feature/create-new-vip-user

Tên branch nên ngắn nhưng mô tả được mục đích. Hãy tuân theo convention của team nếu đã có, ví dụ test/..., feature/... hoặc tên ticket.

Cảnh báo
Không sửa và push trực tiếp lên main hoặc master trừ khi quy trình của team cho phép. Hãy tạo branch riêng và gửi Pull Request để review.

3. git pull — lấy thay đổi mới nhất

git switch main
git pull

git pull tải thay đổi từ remote và cập nhật vào branch hiện tại. Một thói quen đơn giản là cập nhật nhánh chính trước khi tạo branch mới.

5. git diff — xem mình đã sửa gì

git diff

Lệnh này hiển thị những thay đổi chưa được stage. Có thể xem riêng một file:

git diff tests/login.spec.ts

6. git add — add file vào git

Trước khi commit thì phải add. Sau khi add, các file và phần thay đổi sẽ rơi vào trạng thái “staged” – ready to commit

git add tests/login.spec.ts

7. git commit

git commit -m "Add negative login tests"

Commit message nên mô tả ngắn gọn thay đổi đã làm. Tránh các message mơ hồ như update, fix hoặc done.

Ví dụ
Message tốt: Add tests for expired access token. Message chưa rõ: Update API test. Người review nên hiểu mục đích commit mà chưa cần mở từng file.

8. git push — đẩy phần thay đổi lên remote

Lần đầu push một branch mới:

git push -u origin test/login-negative-cases

origin là tên remote mặc định. Tuỳ chọn -u liên kết local branch với remote branch; những lần sau thường chỉ cần:

git push

Push không đồng nghĩa với merge vào nhánh chính. Sau khi push, tester thường mở GitHub/GitLab và tạo Pull Request để team review.

9. Pull Request

Là bước để cả team review lại những phần thay đổi bạn muốn merge vào branch main. Nếu họ approve và merge, thì phần thay đổi của bạn mới được merge.

Ví dụ
Bạn chỉnh sửa 2 file A và B, sau đó commit rồi push lên branch của bạn là feature/abc
Tiếp đó, bạn cần vào Github, tab Pull Request, tạo 1 PR từ branch của bạn đến branch main rồi bấm OK. Như vậy là PR đã được tạo thành công.
Sau đó bạn gửi mã PR cho teammates của mình để họ review và merge

Cheat sheet: các lệnh đủ dùng

Nhu cầuLệnh
Tải projectgit clone <url>
Xem trạng tháigit status
Xem branchgit branch
Chuyển branchgit switch <branch>
Tạo branch mớigit switch -c <branch>
Cập nhật codegit pull
Xem thay đổigit diff
Chọn file để commitgit add <file>
Tạo commitgit commit -m "message"
Đưa branch lên remotegit push
Xem lịch sử ngắngit log --oneline
Mẹo nhớ
Nếu chỉ nhớ một chuỗi lệnh, hãy nhớ: status → diff → add → diff –staged → commit → push. Luôn nhìn lại thay đổi trước khi chia sẻ với team.

Bài thực hành nhỏ

Bài 1:

  1. tạo tài khoản github.com
  2. login thành công vào tài khoản
  3. Tạo 1 repo mới trên đó với tên bất kì, ví dụ test-auto
  4. Cài đặt Git lên máy laptop của bạn, ở bước authentication, nhập đúng thông tin tài khoản mà bạn vừa tạo bên trên
  5. Tải repo test-auto bên trên về sử dụng lệnh git checkout
  6. Mở IntelliJ (hoặc VSCode), mở cái repo bên trên lên

Bài 2:

  1. Tạo 1 branch mới từ branch main, tên là feature/tester-practice
  2. Tạo 2 file a.ts và b.ts trên branch đó
  3. Viết 1 chút nội dung bất kì vào 2 file đó
  4. add và commit 2 đó lên
  5. push mọi thay đổi lên remote
  6. Lên Github, tạo 1 PR trỏ từ branch feature/tester-practice tới branch main
  7. Kiểm tra PR, make sure 2 file của bạn hiển thị đầy đủ trong PR đó
  8. Gửi PR cho 1 đồng nghiệp để họ review và approve
  9. Merge PR đó vào branch main của repo