# 🐙 Cheatsheet: Git cho người mới: branch, merge và quy trình nhóm trên GitHub

> This cheatsheet is part of the paid section. Sign in and purchase the course to view the full content.

Tra cứu nhanh toàn khóa. Mỗi mục là một bảng hoặc lệnh để tra khi đang làm việc.

---

## 0. Mô hình ba vùng và bốn trạng thái

| Vùng | Lệnh đưa file vào | Lệnh hoàn tác |
| --- | --- | --- |
| Working tree | (bạn sửa file) | `git restore <file>` |
| Staging (index) | `git add <file>` | `git restore --staged <file>` |
| Repository (local) | `git commit -m "..."` | `git reset --soft HEAD~1` |
| Remote (GitHub) | `git push` | `git revert <sha>` rồi push |

Ba câu chốt:

- `git add` đưa thay đổi vào staging.
- `git commit` chốt staging thành một snapshot trong lịch sử.
- `git push` đẩy commit lên remote.

### Trạng thái file (theo `git status`)

| Trạng thái | Ý nghĩa |
| --- | --- |
| untracked | File mới, Git chưa biết |
| modified | Đã sửa, chưa `add` |
| staged | Đã `add`, chờ commit |
| committed | Đã nằm trong lịch sử |

---

## 1.1 Repo, staging, commit, log và undo

```bash
git init                          # tạo repo local
git status                        # xem trạng thái
git add <file>                    # stage một file
git add .                         # stage tất cả thay đổi
git commit -m "feat: thêm trang chủ blog"
git log --oneline --graph --decorate
git diff                          # working tree vs staging
git diff --staged                 # staging vs commit cuối
```

### Bảng chọn lệnh undo theo mục tiêu
