Hướng Dẫn Quy Trình Sử Dụng Git Và GitHub Cơ Bản Dành Cho Data Analyst

Quy-trinh-git-github-cho-data-analyst-banner

Trong quá trình làm việc với dữ liệu, nhiều Data Analyst thường gặp cảnh thư mục dự án lộn xộn. Các file như report_final.sql, report_final_v2.sql hay report_final_sua_lan_cuoi.sql xuất hiện khắp nơi. Việc quản lý thủ công này dễ gây nhầm lẫn khi đối soát số liệu. Đồng thời, nó khiến việc phối hợp nhóm gặp nhiều trở ngại. Git và GitHub là giải pháp chuẩn mực để chuyên nghiệp hóa quy trình làm việc. Bộ đôi này giúp bạn theo dõi lịch sử từng dòng code và phân nhánh thử nghiệm an toàn. Đặc biệt, đây còn là công cụ xây dựng Data Portfolio ấn tượng với nhà tuyển dụng.

Bài viết này cung cấp hướng dẫn thực chiến từng bước dành riêng cho người làm dữ liệu. Bạn sẽ nắm vững bản chất của Git và cách tổ chức thư mục phân tích chuẩn mực. Tiếp đó, bài viết hướng dẫn cấu hình .gitignore để bảo vệ dữ liệu mật. Bạn cũng sẽ thực hành các lệnh cốt lõi như git init, git add, git commit, git branch và git push. Cuối cùng là các giải pháp xử lý lỗi thực tế trong doanh nghiệp.

💡 TƯ DUY QUẢN LÝ MÃ NGUỒN DÀNH CHO DATA ANALYST

Git không chỉ dành riêng cho Lập trình viên Phần mềm. Đối với Data Analyst, Git là nhật ký khoa học ghi lại toàn bộ logic phân tích. Công cụ này ghi nhận từ câu lệnh trích xuất thô đến các thử nghiệm chỉ số KPI mới. Nhờ đó, bạn luôn kiểm soát được công thức báo cáo chính thức gửi cho Stakeholders.

📑 NỘI DUNG BÀI VIẾT

1. Phân biệt Git và GitHub: Hai công cụ khác nhau thế nào?
2. 4 Khái niệm cốt lõi trong Git mà Data Analyst cần nắm vững
3. Cấu trúc thư mục chuẩn mực cho một dự án Data Analytics
4. File .gitignore: “Tấm khiên” bảo vệ dữ liệu mật và dung lượng Repo
5. Quy trình thực chiến 6 bước: Đưa dự án phân tích dữ liệu lên GitHub
5.1Khởi tạo kho lưu trữ cục bộ (git init)
5.2Đưa file vào vùng chờ và tạo Commit đầu tiên (git add & git commit)
5.3Phân nhánh phân tích tính năng (git branch & git checkout)
5.4Kết nối kho lưu trữ từ xa và đẩy code lên GitHub (git remote & git push)
6. 5 Sai lầm tai hại của Data Analyst khi dùng Git & Cách khắc phục
7. Tài liệu tham khảo
8. Khám phá lộ trình học tập chuyên sâu tại MCNA Technology School
9. Về tác giả bài viết

1. Phân biệt Git và GitHub: Hai công cụ khác nhau thế nào?

Nhiều người mới bắt đầu làm quen với phân tích dữ liệu thường lầm tưởng Git và GitHub là một công cụ duy nhất. Thực tế, đây là hai thành phần tách biệt nhưng bổ trợ chặt chẽ cho nhau:

Tiêu chí Git (Công cụ quản lý phiên bản) GitHub (Nền tảng lưu trữ & cộng tác)
Bản chất Phần mềm mã nguồn mở chạy trực tiếp trên máy tính cá nhân (Local CLI). Dịch vụ đám mây (Cloud Service) hoạt động trên nền tảng web.
Môi trường hoạt động Hoạt động hoàn toàn Offline, không cần kết nối Internet vẫn quản lý phiên bản tốt. Yêu cầu kết nối Internet để đồng bộ dữ liệu, chia sẻ mã nguồn và duyệt code.
Vai trò với Data Analyst Ghi lại từng bước sửa đổi file SQL, Jupyter Notebook và script Python; quay lại phiên bản cũ khi lỗi. Lưu trữ dự án an toàn, chia sẻ mã nguồn với Data Lead/ đồng nghiệp, và trưng bày Data Portfolio chuyên nghiệp.
Thao tác tiêu biểu git init, git add, git commit, git branch git push, git pull, Fork, Pull Request (PR), Issues

2. 4 Khái niệm cốt lõi trong Git mà Data Analyst cần nắm vững

Trước khi gõ các dòng lệnh trên Terminal, hãy hiểu bản chất kiến trúc của Git qua 4 khái niệm then chốt sau:

  • Repository (Kho lưu trữ hay “Repo”): Là một thư mục trên máy tính được Git theo dõi toàn diện. Mọi lịch sử chỉnh sửa, các nhánh làm việc và cấu hình đều được ẩn bên trong thư mục đặc biệt .git.
  • Commit (Bản chụp trạng thái – Snapshot): Git không lưu trữ dữ liệu theo kiểu “file copy trùng lặp”. Mỗi lần commit, Git sẽ chụp lại một bản snapshot toàn vẹn của mã nguồn. Bản ghi này gắn liền với mã băm SHA-1, tên tác giả và thời gian thực hiện. Đi kèm với đó là thông điệp mô tả chi tiết nội dung thay đổi.
  • Branch (Nhánh làm việc): Cho phép bạn tách luồng làm việc ra khỏi nhánh chính (main). Ví dụ, bạn cần viết câu lệnh SQL phân tích khách hàng rời bỏ (Churn Analysis). Hãy tạo nhánh feature/churn-model để thử nghiệm. Nếu kết quả không đạt, bạn chỉ cần xóa nhánh này đi. Nhánh main vẫn luôn an toàn và hoạt động bình thường.
  • Mô hình 3 trạng thái của Git (The Three States):

    1. Working Directory: Thư mục bạn đang mở trên máy tính để viết code và sửa file.
    2. Staging Area (Index): “Phòng chờ” lưu các file bạn đã chọn lọc bằng lệnh git add để chuẩn bị đóng gói.
    3. Git Directory (Repository): Nơi lưu trữ vĩnh viễn các snapshot sau khi chạy lệnh git commit.

3. Cấu trúc thư mục chuẩn mực cho một dự án Data Analytics

Cách tổ chức cây thư mục thể hiện rõ tính chuyên nghiệp của Data Analyst. Bạn không nên để file dữ liệu, file SQL và notebook lẫn lộn trong một thư mục. Thay vào đó, hãy áp dụng cấu trúc phân tầng khoa học dưới đây:

●●● Project Directory Structure – Data Analytics
ecommerce-analytics/
├── data/
│   ├── raw/              # Dữ liệu gốc ban đầu (Chỉ đọc - Tuyệt đối không sửa tay)
│   └── processed/        # Dữ liệu sạch sau khi làm sạch và tiền xử lý
├── sql/                  # Toàn bộ truy vấn SQL (.sql) trích xuất dữ liệu
│   ├── 01_extract_orders.sql
│   └── 02_customer_cohort.sql
├── notebooks/            # Jupyter Notebooks (.ipynb) phân tích khám phá (EDA)
│   └── 01_exploratory_data_analysis.ipynb
├── src/                  # Các hàm Python xử lý dữ liệu dùng chung (.py)
│   ├── __init__.py
│   └── data_loader.py
├── reports/              # Báo cáo đầu ra, biểu đồ xuất ra (.png, .pdf)
│   └── figures/
├── .gitignore            # Khai báo các file và thư mục Git cần bỏ qua
├── requirements.txt      # Danh sách thư viện Python cần cài đặt
└── README.md             # Tài liệu tổng quan dự án (Bối cảnh, Phương pháp, Kết luận)

Lợi ích vượt trội: Cấu trúc này giúp người đọc dự án nắm bắt luồng xử lý trong vài giây. Nhà tuyển dụng sẽ thấy ngay dữ liệu nguồn nằm ở đâu. Họ cũng dễ dàng kiểm tra câu lệnh SQL nghiệp vụ và vị trí file báo cáo kết luận.

4. File .gitignore: “Tấm khiên” bảo vệ dữ liệu mật và dung lượng Repo

Đối với Data Analyst, file .gitignore là file quan trọng nhất cần thiết lập ngay từ phút đầu tiên khởi tạo dự án. Nếu không có file này, khi gõ lệnh git add ., bạn rất dễ vô tình đẩy lên GitHub:

  • Thứ nhất là các file dữ liệu nặng hàng trăm megabyte như CSV hay Parquet. Khi đó, GitHub sẽ chặn hoàn toàn thao tác push do vượt quá giới hạn 100MB.
  • Thứ hai là thông tin kết nối cơ sở dữ liệu như Server IP, Mật khẩu hay API Token. Điều này sẽ gây ra lỗ hổng bảo mật nghiêm trọng cho doanh nghiệp.
  • Các file cache rác của hệ thống (.ipynb_checkpoints/, __pycache__/, .DS_Store).

●●● File: .gitignore (Chuẩn Data Analytics)
# 1. Bỏ qua toàn bộ dữ liệu thô và file bảng tính nặng
data/raw/
data/processed/
*.csv
*.xlsx
*.xls
*.parquet
*.jsonl
*.zip
*.tar.gz

# 2. Bỏ qua thông tin bí mật và file cấu hình mật khẩu
.env
config.yaml
credentials.json
*_secret.py

# 3. Bỏ qua cache của Jupyter Notebook và Python
.ipynb_checkpoints/
__pycache__/
*.py[cod]
*$py.class
.pytest_cache/

# 4. Môi trường ảo (Virtual Environment)
venv/
env/
.venv/

# 5. File hệ thống rác của Windows & macOS
.DS_Store
Thumbs.db

5. Quy trình thực chiến 6 bước: Đưa dự án phân tích dữ liệu lên GitHub

5.1 Khởi tạo kho lưu trữ cục bộ (git init)

Trước tiên, bạn mở cửa sổ dòng lệnh Terminal hoặc PowerShell. Sau đó, điều hướng vào thư mục dự án và tiến hành khởi tạo Git:

●●● Bash / Terminal – Step 1
# Di chuyển vào thư mục dự án
cd path/to/ecommerce-analytics

# Khởi tạo Git repository cục bộ
git init

# Cấu hình danh tính tác giả (chỉ cần làm 1 lần trên máy tính)
git config --global user.name "Nguyen Vu Tien Dung"
git config --global user.email "tiendung.da@mcna.vn"

5.2 Đưa file vào vùng chờ và tạo Commit đầu tiên (git add & git commit)

Tiếp theo, bạn kiểm tra trạng thái file và đóng gói commit đầu tiên:

●●● Bash / Terminal – Step 2
# Kiểm tra các file đang có sự thay đổi
git status

# Thêm toàn bộ các file hợp lệ (không bị .gitignore chặn) vào Staging Area
git add .

# Ghi nhận bản snapshot đầu tiên kèm thông điệp rõ ràng
git commit -m "feat: setup project structure and add sql data extraction scripts"
💡 Tiêu chuẩn viết Commit Message chuẩn doanh nghiệp (Conventional Commits):
– feat: Khi thêm tính năng phân tích mới (ví dụ: feat: add cohort analysis sql query).
– fix: Khi sửa lỗi logic tính toán (ví dụ: fix: correct repeat customer calculation logic in sql).
– docs: Khi cập nhật tài liệu hoặc chỉnh sửa file README (ví dụ: docs: update analysis findings in readme).

5.3 Phân nhánh phân tích tính năng (git branch & git checkout)

Khi thử nghiệm mô hình hoặc công thức KPI mới, bạn không nên sửa trực tiếp trên nhánh main. Thay vào đó, hãy luôn tạo một nhánh riêng biệt bằng lệnh sau:

●●● Bash / Terminal – Step 3
# Tạo và chuyển ngay sang nhánh mới
git checkout -b feature/retention-cohort

# Viết code phân tích, sau đó lưu lại trên nhánh mới
git add notebooks/02_cohort_analysis.ipynb
git commit -m "feat: implement 12-month customer retention cohort"

# Quay trở lại nhánh chính an toàn bất cứ lúc nào
git checkout main

5.4 Kết nối kho lưu trữ từ xa và đẩy code lên GitHub (git remote & git push)

Trước hết, bạn truy cập github.com và tạo kho lưu trữ mới. Sau đó, chạy các lệnh sau trên máy tính để kết nối và đẩy code lên:

●●● Bash / Terminal – Step 4
# Đặt tên nhánh chính thống nhất là main
git branch -M main

# Gắn địa chỉ kho lưu trữ từ xa vào biến origin
git remote add origin https://github.com/your-username/ecommerce-retention-analytics.git

# Đẩy toàn bộ mã nguồn của nhánh main lên GitHub
git push -u origin main

# Đẩy nhánh phân tích tính năng lên GitHub để tạo Pull Request
git push -u origin feature/retention-cohort

6. 5 Sai lầm tai hại của Data Analyst khi dùng Git & Cách khắc phục

❌ Sai lầm 1: Vô tình commit file dữ liệu dung lượng lớn (> 100MB)

🚨 Hậu quả: GitHub sẽ từ chối lệnh push khi file vượt quá 100MB. Dù đã xóa file, dữ liệu vẫn còn lưu trong lịch sử commit nên Git tiếp tục chặn.
🔧 Cách xử lý: Bạn dùng lệnh: git rm --cached path/to/large_data.csv để gỡ file khỏi Git. File trên ổ cứng vẫn được giữ nguyên an toàn. Sau đó, hãy thêm ngay *.csv vào file .gitignore rồi chạy: git commit --amend.

❌ Sai lầm 2: Lộ mật khẩu Database hoặc API Key lên GitHub công khai

🚨 Hậu quả: Các bot tự động sẽ quét mã nguồn công khai chỉ trong vài giây. Cơ sở dữ liệu công ty có nguy cơ bị xâm nhập. Ngoài ra, tài khoản đám mây có thể bị lạm dụng gây thiệt hại tài chính lớn.
🔧 Cách xử lý: Tuyệt đối không viết trực tiếp mật khẩu vào code. Bạn hãy lưu thông tin bảo mật trong file .env và đọc qua thư viện python-dotenv. Đừng quên đưa file .env vào danh sách .gitignore. Nếu lỡ commit lên public repo, hãy đổi ngay mật khẩu và thu hồi API Key đó lập tức.

❌ Sai lầm 3: Xung đột phiên bản (Merge Conflict) trong Jupyter Notebook (.ipynb)

🚨 Hậu quả: File .ipynb thực chất là tập tin JSON chứa cả metadata và biểu đồ kết quả. Khi hai người cùng sửa, Git sẽ báo xung đột hàng trăm dòng JSON rất khó xử lý.
🔧 Cách xử lý: Mỗi thành viên nên phân tích trên một notebook riêng biệt. Trước khi commit, bạn hãy bấm Clear All Outputs để xóa sạch dữ liệu kết quả ô. Bạn cũng có thể cài công cụ nbstripout để Git tự động lược bỏ output trước khi lưu commit.

❌ Sai lầm 4: Viết Commit Message mơ hồ, cẩu thả

🚨 Hậu quả: Nhật ký commit chỉ có các từ mơ hồ như “update” hay “fix bug”. Sau 2 tuần, bạn sẽ không thể nhớ mình đã thay đổi logic gì. Khi cần tìm lại phiên bản cũ, công việc sẽ vô cùng khó khăn.
🔧 Cách xử lý: Hãy tuân thủ cấu trúc rõ ràng: [hành động] + [nội dung cụ thể]. Ví dụ: feat: add retention metric calculation in sql hoặc fix: resolve null handling in churn model.

❌ Sai lầm 5: Làm việc trực tiếp toàn bộ trên nhánh main

🚨 Hậu quả: Bạn đang viết dở code mà phải xuất báo cáo gấp cho lãnh đạo. Lúc này, nhánh main sẽ rơi vào trạng thái lỗi (“broken state”).
🔧 Cách xử lý: Hãy luôn giữ nhánh main ở trạng thái chuẩn xác nhất. Mọi thử nghiệm phân tích mới đều phải làm trên nhánh tính năng (Feature Branch). Bạn chỉ gộp code vào main khi kết quả đã được đối soát kỹ lưỡng.

7. Tài liệu tham khảo

•
– Cẩm nang toàn diện về kiến trúc và câu lệnh Git của Scott Chacon và Ben Straub.
•
– Hướng dẫn chính thức từ GitHub về tạo repo, quản lý nhánh và Pull Request.

ĐỒNG HÀNH CÙNG MCNA TECHNOLOGY SCHOOL
Khám Phá Lộ Trình Học Tập Chuyên Sâu Tại MCNA Technology School

Nâng cao tư duy lập trình, xử lý dữ liệu và làm chủ công nghệ AI cùng các chương trình đào tạo chuyên sâu:

BI & AI Analytics
Làm chủ tư duy phân tích dữ liệu, tự động hóa xử lý và xây dựng báo cáo quản trị thông minh với Power BI và AI.

Python Data & Automation
Từ nền tảng lập trình đến phân tích dữ liệu thực chiến, xây dựng data pipeline và ứng dụng học máy vào kinh doanh.

Tác giả: Nguyễn Vũ Tiến Dũng – Data Analyst tại MCNA Technology School
🌐 Website: mcna.vn
📞 Hotline: 0939.866.825
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP. Hồ Chí Minh: 50B Phan Tây Hồ, Phường Cầu Kiệu, Phú Nhuận

→ Chỉ mục