Git và GitHub¶
1. Git là gì — tại sao cần thiết¶
Git là hệ thống quản lý phiên bản (version control system). Nó ghi lại lịch sử mọi thay đổi bạn thực hiện trên code, cho phép:
- Quay lại phiên bản cũ khi code bị hỏng
- Làm việc song song trên nhiều tính năng mà không ảnh hưởng nhau (branch)
- Hợp tác nhóm — nhiều người cùng làm trên một dự án
GitHub là dịch vụ lưu trữ Git repository trên đám mây. Code trên máy bạn là local, GitHub là remote — bản sao lưu trên internet.
Git ≠ GitHub
Git là công cụ chạy trên máy bạn. GitHub là website lưu trữ code. Bạn dùng Git để quản lý code, dùng GitHub để chia sẻ và sao lưu.
2. Luồng làm việc với Git¶
| Khu vực | Vai trò |
|---|---|
| Working Directory | Nơi bạn viết và sửa code |
| Staging Area | "Giỏ hàng" — chọn những thay đổi nào sẽ vào commit |
| Local Repository | Lịch sử commit trên máy bạn (thư mục .git) |
| Remote (GitHub) | Bản sao lưu trên internet |
3. Cài đặt Git¶
Tải Git¶
- Vào https://git-scm.com/download/win — trang tự động phát hiện Windows và đề xuất bản tải đúng.
- Tải file
.exe(khoảng 60 MB).
Cài đặt¶
- Chạy file
.exe, nhấn Yes để cho phép thay đổi máy tính. - Màn hình chọn components — giữ mặc định, nhấn Next liên tục.
- Màn hình Choosing the default editor — chọn Notepad hoặc Nano nếu bạn chưa quen với Vim, sau đó Next.
- Màn hình Adjusting your PATH — chọn Git from the command line and also from 3rd-party software (tùy chọn giữa) — rất quan trọng.
- Các màn hình còn lại — giữ mặc định, nhấn Next đến khi Install, rồi Finish.
Kiểm tra¶
Mở Command Prompt hoặc PowerShell mới:
Kết quả ví dụ: git version 2.47.0.windows.1
4. Cấu hình Git lần đầu¶
Trước khi dùng Git, cần đặt tên và email. Thông tin này gắn vào mọi commit bạn tạo.
Thay "Ten Cua Ban" và "email@example.com" bằng tên và email thật của bạn (nên dùng email giống với tài khoản GitHub).
Kiểm tra cấu hình:
Chỉ cần làm một lần
Lệnh --global lưu vào file ~/.gitconfig và áp dụng cho tất cả repository trên máy. Bạn chỉ cần chạy hai lệnh này một lần duy nhất.
5. Tạo tài khoản GitHub¶
- Vào https://github.com, nhấn Sign up.
- Nhập địa chỉ email, tạo mật khẩu, chọn username.
- Xác nhận email bằng cách nhấn vào link trong email GitHub gửi về.
- Chọn gói Free (đủ cho mọi nhu cầu học tập).
6. Tạo repository đầu tiên trên GitHub¶
- Đăng nhập GitHub, nhấn nút + ở góc trên phải → New repository.
- Điền thông tin:
- Repository name:
java-practice(hoặc tên bạn muốn) - Description: tùy chọn
- Public / Private: chọn Public nếu muốn chia sẻ, Private nếu chỉ mình bạn thấy
- ✅ Tick Add a README file
- Repository name:
- Nhấn Create repository.
GitHub đưa bạn vào trang repository vừa tạo, hiển thị URL dạng https://github.com/username/java-practice.
7. Kết nối máy tính với GitHub — SSH Key¶
Git cần xác thực danh tính trước khi cho phép đẩy code lên GitHub. Cách an toàn và thuận tiện nhất là dùng SSH key.
Bước 1 — Kiểm tra SSH key cũ¶
Nếu thấy file id_ed25519 và id_ed25519.pub — bạn đã có SSH key, bỏ qua Bước 2.
Bước 2 — Tạo SSH key mới¶
Thay email@example.com bằng email GitHub của bạn.
Khi được hỏi:
- Enter file in which to save the key — nhấn Enter để dùng vị trí mặc định.
- Enter passphrase — có thể để trống (nhấn Enter hai lần) hoặc đặt mật khẩu bảo vệ.
Bước 3 — Thêm SSH key vào GitHub¶
Sao chép nội dung public key:
Sao chép toàn bộ dòng text bắt đầu bằng ssh-ed25519 ....
Trên GitHub:
1. Nhấn ảnh đại diện → Settings → SSH and GPG keys.
2. Nhấn New SSH key.
3. Title: đặt tên để nhận ra máy tính (ví dụ Laptop cá nhân).
4. Key: dán nội dung vừa sao chép vào.
5. Nhấn Add SSH key.
Bước 4 — Kiểm tra kết nối¶
Kết quả thành công:
8. Clone repository về máy¶
Thay username bằng GitHub username của bạn. Lệnh này tạo thư mục java-practice chứa toàn bộ repository.
9. Vòng lặp làm việc hàng ngày với Git¶
Đây là quy trình bạn sẽ lặp lại mỗi ngày:
Bước 1 — Kiểm tra trạng thái hiện tại¶
Lệnh này hiển thị: - File nào đã thay đổi (modified) - File nào đang ở staging (staged) - File nào chưa được track (untracked)
Bước 2 — Thêm thay đổi vào staging¶
Nên dùng git add theo file cụ thể
git add . tiện lợi nhưng có thể thêm file không mong muốn. Khi mới học, hãy chỉ định rõ tên file.
Bước 3 — Tạo commit¶
Ví dụ:
Viết commit message tốt
- Bắt đầu bằng động từ:
Add,Fix,Update,Remove - Ngắn gọn, rõ ràng — người khác đọc commit message phải hiểu bạn làm gì
- Tiếng Anh là chuẩn quốc tế, nhưng dùng tiếng Việt cũng không sao khi làm một mình
Bước 4 — Đẩy code lên GitHub¶
Bước 5 — Kéo code mới nhất từ GitHub (khi làm nhóm hoặc dùng nhiều máy)¶
10. Ví dụ hoàn chỉnh — từ đầu đến cuối¶
# Clone repository về máy
git clone git@github.com:username/java-practice.git
cd java-practice
# Tạo file Java mới
# ... (viết code trong IDE hoặc text editor) ...
# Kiểm tra trạng thái
git status
# Thêm file vào staging
git add HelloWorld.java
# Tạo commit
git commit -m "Add HelloWorld program"
# Đẩy lên GitHub
git push origin main
11. File .gitignore — không track file không cần thiết¶
File .gitignore liệt kê các file/thư mục Git sẽ bỏ qua hoàn toàn.
Tạo file .gitignore trong thư mục gốc của project:
# Bytecode
*.class
# Build output
target/
out/
# IDE files
.idea/
*.iml
.vscode/
.classpath
.project
.settings/
# macOS
.DS_Store
# Windows
Thumbs.db
Tạo .gitignore tự động
Trang gitignore.io cho phép chọn ngôn ngữ và IDE, tự động tạo nội dung .gitignore phù hợp. Ví dụ: chọn Java, IntelliJ, macOS.
12. Các lệnh Git cần nhớ¶
| Lệnh | Tác dụng |
|---|---|
git init |
Khởi tạo Git repository mới trong thư mục hiện tại |
git clone <url> |
Sao chép repository từ remote về máy |
git status |
Xem trạng thái working directory và staging |
git add <file> |
Thêm file vào staging |
git add . |
Thêm tất cả thay đổi vào staging |
git commit -m "msg" |
Tạo commit với message |
git push origin main |
Đẩy commit lên remote branch main |
git pull origin main |
Kéo code mới nhất từ remote |
git log |
Xem lịch sử commit |
git log --oneline |
Lịch sử commit ngắn gọn |
git diff |
Xem thay đổi chưa được stage |
13. Xử lý lỗi thường gặp¶
Permission denied (publickey)¶
Nguyên nhân: SSH key chưa được thêm vào GitHub, hoặc chưa được load vào SSH agent.
Cách sửa:
error: failed to push some refs¶
Nguyên nhân: Remote có commit mà local chưa có (ai đó đã push trước bạn).
Cách sửa:
fatal: not a git repository¶
Nguyên nhân: Bạn đang chạy lệnh Git ngoài thư mục có repository.
Cách sửa: Dùng cd để vào đúng thư mục chứa .git, hoặc chạy git init để tạo repository mới.
Tiếp theo: Maven và Hello World — tạo project Java chuẩn với build tool.