Git 101: Các lệnh Git thiết yếu cho mọi developer
Trên trường hầu như không dạy về Git, nhưng đây là kĩ năng tối quan trọng mà hầu như tất cả developer bắt buộc đều phải biết sử dụng. Trong bài viết này, mình sẽ chia sẻ những lệnh Git thiết yếu mà mọi developer nên nắm vững để quản lý code hiệu quả và cộng tác mượt mà trong các dự án phát triển phần mềm.
Bắt đầu với Git
Cấu hình ban đầu
Trước khi lao vào gõ lệnh, hãy đảm bảo Git đã được cấu hình ngon lành:
# Đặt thông tin cá nhângit config --global user.name "Your Name"git config --global user.email "your.email@example.com"
# Đặt trình soạn thảo mặc địnhgit config --global core.editor "vim"Khởi tạo repository
Bắt đầu một Git repository mới hoặc clone một repository có sẵn:
# Khởi tạo repository mớigit init
# Clone một repository có sẵngit clone https://github.com/username/repository.gitCác lệnh Git dùng hằng ngày
Kiểm tra trạng thái và lưu thay đổi
# Kiểm tra trạng thái repositorygit status
# Thêm file vào khu vực staginggit add filename.txt # Thêm một file cụ thểgit add . # Thêm tất cả các filegit add *.js # Thêm tất cả file JavaScript
# Tạo commitgit commit -m "Your meaningful commit message"git commit -am "Add and commit in one command" # Chỉ hoạt động với file đã được theo dõiLàm việc với branch và di chuyển giữa các nhánh
# Liệt kê các branchgit branch # Branch localgit branch -r # Branch remotegit branch -a # Tất cả branch
# Tạo và chuyển sang branch mớigit checkout -b feature/new-featuregit switch -c feature/new-feature
# Chuyển giữa các branchgit checkout maingit switch main
# Xoá branchgit branch -d branch-name # Xoá an toàngit branch -D branch-name # Xoá cưỡng bứcLàm việc với remote repository
Các thao tác với remote
# Liệt kê các remotegit remote -v
# Thêm remotegit remote add origin https://github.com/username/repo.git
# Lấy cập nhật mới nhất từ remotegit fetch origin
# Kéo thay đổi từ remote vềgit pull origin main
# Đẩy thay đổi lên remotegit push origin feature/new-featureXem lại thay đổi
Xem lịch sử và so sánh khác biệt
# Xem lịch sử commitgit loggit log --oneline # Dạng rút gọngit log --graph # Hiển thị dạng đồ thị
# Xem thay đổigit diff # So sánh thư mục làm việc với staginggit diff --staged # So sánh staging với commit gần nhấtgit diff branch1..branch2 # So sánh giữa hai branchCác thao tác nâng cao
Tạm cất thay đổi (stash)
# Tạm cất thay đổi để làm việc khácgit stash
# Xem danh sách stashgit stash list
# Áp dụng stash gần nhấtgit stash apply
# Áp dụng một stash cụ thểgit stash apply stash@{2}
# Xoá một stashgit stash drop stash@{0}Merge và rebase
# Merge một branchgit merge feature/new-feature
# Rebase branch hiện tạigit rebase main
# Interactive rebasegit rebase -i HEAD~3 # Rebase 3 commit gần nhấtKhôi phục và hoàn tác thay đổi
Sửa lỗi và quay ngược
# Hoàn tác commit gần nhất (nhưng giữ lại thay đổi trong code)git reset HEAD~1
# Reset cứng về một commit cụ thểgit reset --hard commit-hash
# Tạo commit đảo ngược (revert) một commitgit revert commit-hashBest practices (Thói quen nên có)
1. Commit message
Viết commit message rõ ràng, dễ hiểu và có ý nghĩa:
# Ví dụ commit message “xịn xò”git commit -m "feat: add user authentication system
- Implement JWT token generation- Add password hashing- Create user validation middleware"- Sử dụng prefix như
feat:,fix:,docs:,refactor:để phân loại commit, tham khảo theo Conventional Commits.
2. Quy ước đặt tên branch
Dùng tên branch mô tả rõ ràng kèm tiền tố:
feature/cho tính năng mớibugfix/cho sửa lỗihotfix/cho sửa lỗi gấp trên productionrelease/cho chuẩn bị phát hành
Ví dụ:
git checkout -b feature/user-authentication3. Cập nhật thường xuyên
Giữ cho repository local luôn cập nhật với branch chính:
git checkout maingit pull origin maingit checkout your-branchgit rebase mainMẹo workflow với Git
Tạo một tính năng mới
# Bắt đầu một feature mớigit checkout maingit pull origin maingit checkout -b feature/new-feature
# Làm việc trên featuregit add .git commit -m "feat: implement new feature"
# Cập nhật với branch maingit checkout maingit pull origin maingit checkout feature/new-featuregit rebase main
# Đẩy lên remotegit push origin feature/new-featureQuy trình code review
# Cập nhật feature branch trước khi tạo PR / reviewgit checkout feature/new-featuregit fetch origingit rebase origin/main
# Sửa theo comment reviewgit add .git commit -m "fix: address review comments"git push origin feature/new-featureXử lý sự cố thường gặp
Giải quyết xung đột merge
# Khi xảy ra conflictgit status # Xem file đang bị conflict# Mở file, sửa conflict cho đúnggit add resolved-file.txtgit commit -m "resolve merge conflicts"Khôi phục thay đổi đã “mất”
# Xem refloggit reflog
# Khôi phục commit đã mấtgit checkout -b recovery-branch lost-commit-hashKết luận
Những lệnh Git trên là “bộ công cụ cơ bản” để bạn sinh tồn trong thế giới version control hiện đại. Dù Git còn rất nhiều lệnh và tính năng nâng cao, chỉ cần nắm vững những lệnh thiết yếu này là bạn đã xử lý được hầu hết các tình huống hằng ngày rồi.
Hãy luôn nhớ:
- Viết commit message rõ ràng, có ý nghĩa
- Giữ branch của bạn luôn cập nhật với branch chính
- Đặt tên branch sao cho nhìn vào là hiểu đang làm gì
- Thường xuyên push code lên remote để tránh “mất trắng”
- Luôn xem lại thay đổi (
git diff,git status) trước khi commit
Càng dùng Git nhiều, bạn sẽ càng thấy nó quen tay và “dễ như ăn kẹo”. Đừng ngại tạo một repository thử nghiệm để thoải mái vọc, reset, rebase, phá rồi sửa – đó là cách nhanh nhất để hiểu sâu Git.