Git là một công cụ quản lý phiên bản quan trọng đối với lập trình viên. Mặc dù các công cụ giao diện đồ họa (GUI) có thể đơn giản hóa một số tác vụ, nhưng việc thành thạo dòng lệnh Git mang lại sự kiểm soát, linh hoạt và tiện lợi cao hơn. Dưới đây là lệnh Git hữu ích mà mọi lập trình viên nên biết để tối ưu hóa quy trình làm việc.
1. Thiết lập cấu hình toàn cầu
Đảm bảo rằng các commit của bạn được gắn với thông tin cá nhân đúng.
git config --global user.name "Tên của bạn"
git config --global user.email "email@example.com"
💡 Mẹo: Sử dụng --local thay vì --global để thiết lập cấu hình riêng cho từng dự án.
2. Hoàn tác commit cuối (không mất thay đổi)
Nếu bạn bị lỗi ở commit gần nhất, bạn có thể quay lại (hoàn tác) nó.
git reset --soft HEAD~1
Lệnh này giữ lại các thay đổi đã được staged, vì vậy bạn có thể sửa commit hoặc khắc phục lỗi.
3. Chỉnh sửa commit cuối
Thay đổi hoặc muốn cập nhật mô tả commit?
git add .
git commit --amend -m "Mô tả commit mới"
Lệnh này cập nhật commit trước đó mà không tạo commit mới.
4. Lưu trữ tạm thời các thay đổi chưa commit
Cần chuyển nhanh sang nhánh khác mà không muốn commit?
git stash
💡 Lấy lại thay đổi đã lưu trữ bằng lệnh:
git stash pop
5. Xem lịch sử commit dưới dạng đồ họa
Hiển thị lịch sử commit giúp bạn dễ dàng theo dõi trạng thái dự án.
git log --graph --oneline --all
6. Thay đổi tác giả của commit
Thay đổi tác giả của commit cuối cùng.
git commit --amend --author="Tác giả mới <email@example.com>"
7. Kiểm tra sự khác biệt của các thay đổi đã staged
Sử dụng git diff để so sánh các tệp ở các giai đoạn khác nhau.
git diff --staged
Lệnh này hiển thị những thay đổi đã được staged nhưng chưa commit.
8. Tìm bug bằng Bisect
Sử dụng git bisect để tìm commit đã gây ra lỗi.
git bisect start
git bisect bad # Commit hiện tại có lỗi
git bisect good <commit-hash> # Một commit trước đó không có lỗi
Git sẽ kiểm tra lịch sử commit để xác định commit gây ra lỗi.
9. Rebase để làm sạch lịch sử commit
Rebasing giúp viết lại lịch sử commit cho dễ hiểu hơn.
git rebase -i HEAD~3
Lệnh này cho phép bạn chỉnh sửa, gộp hoặc sắp xếp lại ba commit gần nhất.
10. Cherry-Pick commit cụ thể
Muốn lấy một commit cụ thể từ nhánh khác?
git cherry-pick <commit-hash>
11. Liệt kê tất cả các nhánh (local và remote)
Xem các nhánh có sẵn.
git branch -a
12. Xóa các tệp và thư mục không được theo dõi
Nhanh chóng xóa các tệp không được Git theo dõi.
git clean -fd
💡 Sử dụng -n để thực hiện thử nghiệm và xem trước những gì sẽ bị xóa.
13. Theo dõi một nhánh upstream
Giữ nhánh local của bạn đồng bộ với nhánh remote.
git branch --set-upstream-to=origin/main
14. Gộp commit bằng Rebase tương tác
Kết hợp nhiều commit thành một.
git rebase -i HEAD~n # Thay 'n' bằng số lượng commit
15. Xem tệp tại một commit cụ thể
Kiểm tra trạng thái của tệp tại một commit nhất định.
git show <commit-hash>:đường/dẫn/tới/tệp
16. Chỉnh sửa .gitignore sau khi commit
Nếu bạn quên bỏ qua một số tệp, hãy cập nhật .gitignore.
echo "node_modules/" >> .gitignore
git rm -r --cached node_modules/
git commit -m "Cập nhật .gitignore"
17. Hoàn tác một commit đã đẩy lên
Hoàn tác các thay đổi từ một commit cụ thể mà không thay đổi lịch sử.
git revert <commit-hash>
18. Fetch chỉ metadata
Muốn tránh việc tải toàn bộ repository?
git fetch --dry-run
Lệnh này cho phép bạn xem những gì sẽ được fetch mà không thực sự tải dữ liệu.
19. Blame một dòng code
Tìm hiểu ai đã viết một dòng code cụ thể.
git blame đường/dẫn/tới/tệp
20. Reset một tệp về commit cuối cùng
Loại bỏ các thay đổi local cho một tệp cụ thể.
git checkout -- đường/dẫn/tới/tệp
Những lệnh Git này sẽ giúp bạn tối ưu hóa quy trình phát triển, dù bạn đang làm việc độc lập hay với nhóm. Dù các công cụ giao diện đồ họa (GUI) mang lại sự tiện lợi, nhưng việc làm chủ dòng lệnh Git sẽ cung cấp cho bạn nhiều quyền kiểm soát hơn đối với quy trình làm việc. Hãy thử áp dụng những lệnh này và nâng cao kỹ năng Git của bạn!