NỘI DUNG BÀI HỌC

✅ Git là gì? (Git CSM)
✅ Ưu điểm của Git
✅ Dịch vụ Git (GitHub)
✅ Các bước cài đặt để sử dụng được Git trên Windows



✳️ Tìm hiểu tổng quan về Git

1. Git là gì?

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Định nghĩa ở trên mình lấy ở trang git-scm.com. Hiểu nôm na Git là một phần mềm quản lý mã nguồn (source code) phân tán.

[Selenium Java] Quản lý source code Selenium Java trên GitHub | Anh Tester


2. Ưu điểm của git

  • Giúp quản lý mã nguồn đơn giản, an toàn và dễ sử dụng.
  • Tối ưu hóa việc quản lý source code khi làm việc theo nhóm bằng cách chia và kết hợp ra các nhánh (branch).
  • Dễ dàng tích hợp CI/CD trong việc deployment với git.
  • Có thể dễ dàng lấy source code ở bất kỳ đâu chỉ cần clone từ git server về máy của bạn.

3. Git server là gì?

  • Git server là máy chủ (server) có cài đặt dịch vụ git. Source code sẽ được lưu trữ ở máy server này.
  • Một số git server phổ biến: GitHub, Bitbucket, GitLab, Microsoft Azure DevOps, Amazon AWS CodeCommit ...


Note:
 Các bạn mới cần phân biệt giữa git và git server.

Ví dụ: GitHub là một git server. Bạn có thể tạo một respository trên github. Repository trên git server này gọi là remote repository. Bạn có thể Clone Remote Repository về máy bạn thành Local Repository

[Selenium Java] Quản lý source code Selenium Java trên GitHub | Anh Tester

4. Repository là gì?

[Selenium Java] Quản lý source code Selenium Java trên GitHub | Anh Tester

  • Repostiory được hiểu như là một nơi lưu trữ chứa mã nguồn (source code) và tất cả thông tin liên quan đến việc sửa đổi và lịch sử của toàn bộ project (dự án).

  • Dữ liệu của repository git có thể xem ở folder .git:

    [Selenium Java] Quản lý source code Selenium Java trên GitHub | Anh Tester

  • Respository có 2 loại:

    • Remote Repository: đặt ở git server và có thể chia sẻ tới nhiều người.
    • Local Repository: đặt ở máy local chỉ cho bản thân mình dùng. Bạn có thể Clone Remote Repository về máy bạn thành Local Repository. Và sau khi có thay đổi ở Local Repository có thể push code lên Remote Repository.

5. Branch là gì?

[Selenium Java] Quản lý source code Selenium Java trên GitHub | Anh Tester

  • Branch là nhánh của repository, hiểu đơn giản nó như một khu vực làm việc riêng (workspace). Khi tạo ra repository (kho chứa) ở git ta sẽ có 1 branch chính (master/main). Từ branch chính này ta có thể phân chia thành nhiều branch nhỏ. Branch đã phân nhánh này không ảnh hưởng đến branch chính vậy nên ta có thể tiến hành nhiều thay đổi trên cùng 1 repository. Đồng thời ta có thể merge (kết hợp) các branch với nhau.

Ví dụ:

  • Khi ta làm một tính năng (feature) mới ta có thể tạo ra một branch riêng để code cho feature này. Sau khi feature hoàn thành ta có thể merge code vào branch chính (master).

  • Hoặc trong team có nhiều team members ta có thể chia repository thành nhiều branch. Với mỗi branch cho một người. Việc chia thành các branch riêng biệt rất tiện lợi cho việc làm việc theo nhóm và tách biệt source code, cùng lúc chỉnh sửa trên 1 repository.

  • Có 2 loại branch. Tương tự như repository, branch cũng có 2 loại:

    • Remote Branch: là branch lưu ở git server. Branch này có thể chia sẻ với người khác được.
    • Local branch: là branch lưu ở local máy của mình. Nó có thể liên kết với 1 remote branch hoặc không.

 

✳️ Các bước cài đặt để sử dụng được Git trên Windows

  • Bước 1: cài đặt phần mềm Git SCM:
      • Windows: tải tại git-scm.com. Khi cài sẽ có Git Bash.

      • macOS: dùng brew install git hoặc tải bản chính thức.

      • Linux: sudo apt install git (Ubuntu).

  • Bước 2: đăng ký tài khoản trên dịch vụ GitHub để lưu trữ source code:
      • Truy cập https://github.com.

      • Đăng ký bằng email, chọn username.

      • Xác thực email.

  • Bước 3: Đăng nhập và tạo repository trên GitHub và kết nối với máy tính Windows

Link tải Git SCMhttps://git-scm.com/download/


Link GitHubhttps://github.com/

  • Tạo mới một remote repository trên GiHub: 
https://docs.github.com/en/get-started/quickstart/create-a-repo

Link tải GitHub Desktop (dành cho cả Window và MacOS)https://desktop.github.com/

Link GitLabhttps://gitlab.com/users/sign_up

✳️ Cài đặt cấu hình ban đầu

Sau khi cài đặt xong, hãy mở chương trình dòng lệnh của bạn lên:

  • Windows: Mở Git Bash (được cài cùng với Git).

  • macOS/Linux: Mở Terminal.

Để kiểm tra xem Git đã được cài đặt thành công chưa, gõ lệnh sau và nhấn Enter:

git --version

Nếu bạn thấy một dòng chữ hiện ra như git version 2.42.0.windows.1, chúc mừng, bạn đã cài đặt thành công! ✅

Bước 1: Cấu hình thông tin cá nhân

Đây là bước cực kỳ quan trọng. Bạn cần "khai báo danh tính" để mỗi khi bạn lưu thay đổi (commit), Git sẽ biết chính bạn là tác giả.

Hãy chạy hai lệnh sau trong Terminal / Git Bash, thay Tên của bạnemail@example.com bằng thông tin cá nhân của bạn.

git config --global user.name "Nguyen Van A"
git config --global user.email "nguyenvana@example.com"
  • --global: nghĩa là thiết lập này sẽ được áp dụng cho tất cả các dự án Git trên máy tính của bạn.

Để kiểm tra lại thông tin đã cấu hình, dùng lệnh:

git config --list

Bạn sẽ thấy user.nameuser.email của mình xuất hiện trong danh sách.

✳️ Luồng làm việc Git cơ bản với CLI

  • git clone: "Sao chép" một repo từ xa (GitHub) về máy.

  • git status: "Kiểm tra tình trạng" của repo, xem file nào đã thay đổi.

  • git add: "Đưa vào khu vực chờ", chuẩn bị những thay đổi sẽ được lưu lại.

  • git commit: "Đóng gói và ghi vào nhật ký", chính thức lưu lại thay đổi với một thông điệp rõ ràng.

  • git push: "Đẩy" các commit từ máy mình lên repo trên GitHub.

  • git pull: "Kéo" những thay đổi mới nhất từ GitHub về máy.

✳️ Tạo "Chìa khóa" SSH để kết nối với GitHub

 

Để máy tính của bạn có thể "nói chuyện" với tài khoản GitHub một cách an toàn, chúng ta sẽ tạo ra một cặp "chìa khóa số" gọi là SSH Key.

  • Private Key (Chìa khóa riêng): Giống như chìa khóa nhà của bạn, bạn phải giữ nó tuyệt đối bí mật.

  • Public Key (Chìa khóa công khai): Giống như ổ khóa, bạn có thể đưa nó cho GitHub. GitHub sẽ dùng nó để xác nhận đúng là bạn đang truy cập.

Bước 1: Tạo cặp khóa SSH

Mở Terminal / Git Bash và chạy lệnh sau (nhớ thay bằng email bạn dùng cho GitHub):

ssh-keygen -t rsa -b 4096 -C "email_github_cua_ban@example.com"

Hệ thống sẽ hỏi bạn một vài câu, bạn chỉ cần nhấn Enter 3 lần để bỏ qua và dùng các thiết lập mặc định.

Bước 2: Lấy Public Key

Bây giờ, chúng ta cần lấy nội dung của "ổ khóa" (public key) để đưa cho GitHub. Dùng lệnh sau để xem và sao chép nội dung file:

cat ~/.ssh/id_rsa.pub​

Bạn sẽ thấy một chuỗi ký tự dài bắt đầu bằng ssh-rsa.... Hãy bôi đen và sao chép toàn bộ chuỗi ký tự này.

Bước 3: Thêm Public Key vào GitHub

  1. Đăng nhập vào tài khoản GitHub của bạn.

  2. Nhấp vào avatar ở góc trên bên phải, chọn Settings.

  3. Ở menu bên trái, chọn SSH and GPG keys.

  4. Nhấp vào nút New SSH key.

  5. Đặt một cái Title dễ nhớ (ví dụ: "My Personal Laptop").

  6. Dán toàn bộ nội dung public key bạn vừa sao chép vào ô Key.

  7. Nhấp Add SSH key.

 

Bước 4: Kiểm tra kết nối

Quay lại Terminal / Git Bash và chạy lệnh sau để kiểm tra xem "chìa khóa" đã hoạt động chưa:

ssh -T git@github.com

Lần đầu kết nối, bạn có thể thấy một cảnh báo, hãy gõ yes và nhấn Enter. Nếu kết quả trả về có câu: Hi username! You've successfully authenticated..., bạn đã kết nối thành công! 🎉

 

✳️ Quy trình làm việc với Git chuẩn

Trước khi mở code làm việc thì chúng ta nên làm theo các bước sau:

  • B1: Pull source về trước - Đảm bảo source dưới local mình đang mới nhất
  • B2: Commit lên sau khi add/edit code
  • B3: Push
  • B4: Lên server check lại
Và cứ như thế lặp lại từ B1 đến B4 cho các lần mở code làm việc.

Thao tác theo bước như vậy để tránh bị Conflict code (trùng lặp nội dung code trên cùng 1 file)

✳️Làm quen với Sourcetree - Người bạn trực quan

Dùng dòng lệnh rất tuyệt vời để hiểu bản chất, nhưng đôi khi chúng ta cần một công cụ giao diện để nhìn mọi thứ rõ ràng hơn. Sourcetree là một lựa chọn miễn phí và mạnh mẽ.

  • Sourcetree là gì?

    • Sourcetree là một ứng dụng miễn phí của Atlassian giúp quản lý Git bằng giao diện đồ họa (GUI).

    • Nó không thay thế Git, mà là "lớp trực quan hóa" giúp dễ quan sát lịch sử, branch, commit.

  • Vì sao nên dùng?

    • Người mới học Git có thể dễ hình dung hơn.

    • Quản lý branch, merge, history rõ ràng bằng sơ đồ cây.

    • Tránh sai sót khi gõ lệnh dài trên CLI.

👉 Tuy nhiên: CLI vẫn là nền tảng bắt buộc phải nắm vững – Sourcetree chỉ để hỗ trợ.

Bước 1: Tải & cài đặt

Bước 2: Kết nối với GitHub

  1. Mở Sourcetree → chọn Tools → Options → Authentication.

  2. Thêm tài khoản GitHub:

    • Chọn Add → chọn GitHub.

    • Có 2 cách:

      • OAuth (dùng token)

      • SSH (dùng key đã tạo ở phần trước).

  3. Kết nối thành công → bạn sẽ thấy account GitHub hiển thị trong Sourcetree.


Clone một repo bằng Sourcetree

Thay vì gõ lệnh git clone, bạn chỉ cần nhấn vào nút Clone, dán URL của repo vào, chọn nơi lưu và nhấn Clone.

Commit & Push bằng Sourcetree

Khi bạn thay đổi file, Sourcetree sẽ tự động nhận diện.

  1. Chọn các file bạn muốn commit trong mục "Unstaged files".

  2. Nhấn nút Stage Selected (tương đương git add).

  3. Viết thông điệp commit vào ô bên dưới.

  4. Nhấn nút Commit.

  5. Cuối cùng, nhấn nút Push ở thanh công cụ trên cùng để đẩy lên GitHub.

Điểm mạnh nhất của Sourcetree là nó cho bạn thấy lịch sử commit dưới dạng một biểu đồ trực quan, giúp bạn dễ dàng theo dõi ai đã thay đổi gì và khi nào.

 

✳️ gitignore là gì?

gitignore là file có tên là .gitignore do Git quy định. Nhiệm vụ của nó là liệt kê những file mà mình không mong muốn cho vào git hoặc hiểu nôm na là Git sẽ bỏ qua những file đó đi không mang lên dịch vụ lưu trữ source code. gitignore hiện nay rất quan trọng trong team work, các bạn nên áp dụng ngay vào quy trình làm việc của team cụ thể là source code automation test dành cho Tester chúng ta.

✳️ Cách thức hoạt động của gitignore là gì?

Có thể hiểu đơn giản là git sẽ bỏ qua file hoặc một tập các file trong project của chúng ta khi commit và push lên repository. Ví dụ:

# Virtualenv
venv/
.env


# Byte-compiled
__pycache__/
*.pyc


# IDEs
.vscode/
.idea/


# Test results
reports/
allure-results/
logs/


# OS files
.DS_Store
Thumbs.db

 

Git quản lý các file mà chúng ta muốn “ignore” bằng file .gitignore được đặt ở trong thư mục root project.

Khi add 1 file mới vào git, git sẽ kiểm tra danh sách những file sẽ bỏ qua trong file .gitignore và không add chúng vào git. Đó mới chỉ là điều kiện cần, điều kiện đủ là files không có trong git cache nữa thì git nó mới bỏ qua, chứ files mà nằm trong git cache thì .gitignore sẽ vô tác dụng.

✳️ Các kiểu format để loại bỏ trong .gitignore hay dùng

  • Sử dụng dấu # để comment và có thể để cách dòng cho dễ đọc.
  • Format cho các file có tên cụ thể: jdk.exe, source.zip, record.mp4,...
  • Format dành cho loại bỏ cả thư mục: example_folder/
    Khi ignore thư mục nên có dấu / ở sau tên thư mục để nhận biết đó là thư mục, nếu không nó có thể là coi là thư mục hoặc file hay symbolic link.
  • Dấu ! phía trước có ý nghĩa phủ định: !abc/example.exe nghĩa là không loại bỏ file cụ thể example.exe
  • Sử dụng dấu * để tìm các file có cùng định dạng. Ví dụ như bạn muốn ignore tất cả các file .xml trong project: *.xml
  • Trường hợp khác của * nếu bạn chỉ rõ đường dẫn ví dụ: config/*.xml thì nó chỉ có hiệu lực cho các file config/abc.xml mà không có hiệu lực cho các file config/sub/abc.xml.
  • Sử dụng dấu ** để có hiệu lực cho các thư mục không cần định rõ tên. Ví dụ: **/report nó sẽ có hiệu lực cho tất cả file hoặc thư mục có tên là report ở mọi nơi trong project.
  • Hay sử dụng kiểu folder/** để có hiệu lực cho tất cả các file bên trong thư mục.

 

✳️ Các phần cần loại bỏ trong source code

🔆 File .gitignore

bin/
out/
.idea/
.allure/
allure-results/
ExportData/
ExtentReports/
logs/
target/
test-output/
reports/
*.png
*.jpg
*.mp4
*.avi
*.zip
*.iml
Git
 


Lưu ý: khi mà file hoặc folder đã lên trên server trước khi chúng ta add nó vào gitignore thì nó sẽ KHÔNG BỊ DELETE ĐƯỢC. Muốn DELETE ĐƯỢC chúng ta cần phải delete nó dưới local xong commit push lên lại thì từ đó về sau nó mới hiểu loại bỏ như trong gitignore.


✳️ Quy trình chuẩn Git Workflow

  1. Clone repository

    Lần đầu lấy code về máy:

    git clone git@github.com:org/project.git
    cd project
    
  2. Tạo branch mới (không làm trực tiếp trên main/master)

    git checkout your_branch
  3. Update code mới nhất từ remote (sync với master/main)

    Trước khi bắt đầu làm hoặc trước khi tạo PR:

    git checkout main
    git pull origin main
    git checkout your_branch
    git merge origin main   # merge latest code to your branch
    
  4. Thực hiện thay đổi (code, test, config, …)

  5. Add & Commit thay đổi

    git add .
    git commit -m "Implement feature X"
    
  6. Push branch lên remote

    git push 
    #or 
    # git push origin your_branch      # Make sure your updating push on your branch
    
  7. Tạo Pull Request (PR/Merge Request)

    • Trên GitHub/GitLab: tạo PR từ your_branchmain.

  8. Code Review

    • Đồng đội review, comment, yêu cầu fix.

    • Nếu phải fix: chỉnh code → git add . && git commit --amend hoặc git commit -m "Fix review"git push origin your_branch.

  9. Merge vào main/master

    • Sau khi được approve, người được phân quyền merge sẽ merge PR vào main.

    • Có thể chọn merge commit, squash commit hoặc rebase merge tùy workflow.

  10. Cập nhật lại local sau khi merge

    git checkout main
    git pull origin main
    

     

👉 Tóm gọn:
clone → checkout branch → pull main → code → add → commit → push → create PR → review/fix → merge main → update local.

Teacher

Teacher

Hà Lan

QA Automation

With over 5 years of experience in web, API, and mobile test automation, built strong expertise in designing and maintaining automation frameworks across various domains and international projects. Committed to mentoring and knowledge sharing, I provide practical guidance and proven techniques to help aspiring testers develop their skills and succeed in the automation field.

Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Danh sách bài học