Ba vùng của Git
Một file thay đổi đi qua ba vùng: working directory (nơi bạn sửa), staging area (nơi bạn chọn những gì sẽ chụp ảnh), và repository (nơi các commit được lưu vĩnh viễn).
// File: terminal.sh
git status # xem file nào đang ở vùng nào
git add index.js # chọn file để đưa vào staging
git commit -m "Thêm trang đăng nhập"
# chụp ảnh staging -> repository
git log --oneline # xem lịch sử commit
Mô tả “vì sao” chứ không phải “cái gì”. Thay vì update file, viết fix: không cho guest ghi khoá học. Sau 6 tháng đọc lại bạn sẽ cảm ơn chính mình.
Push, pull và remote
Repository ở GitHub là remote. push đưa commit của bạn lên; pull kéo commit của người khác về. Lịch học chuẩn đầu ngày: pull trước, làm, commit, push.
// File: remote.sh
git remote add origin https://github.com/you/repo.git
git push -u origin main # đẩy nhánh main lên lần đầu
git pull # kéo cập nhật mới về máy
git clone <url> # chép nguyên repo về máy
Branch: làm việc song song không phá nhau
Branch là “nhánh” riêng biệt của lịch sử. Bạn làm tính năng trong feature/login, code chính vẫn an toàn ở main. Xong thì gộp (merge) lại.
// File: branch.sh
git switch -c feature/login # tạo nhánh mới và chuyển sang
git switch main # quay về nhánh chính
git merge feature/login # gộp nhánh tính năng vào main
❓ Sau khi `git add file.js`, file đó đang ở đâu?
- Thuộc: status, add, commit, push, pull
- Viết commit message theo ý nghĩa
- Luôn tạo branch mới cho tính năng
- Pull trước khi bắt đầu làm việc