Cách dùng Công cụ tạo lệnh Git
- Tìm tác vụ của bạn trong danh sách hoặc gõ từ khóa — “undo”, “rename”, “stash”, “squash”.
- Điền tên nhánh, mã hash của commit hoặc đường dẫn file mà tác vụ cần.
- Đọc phần giải thích dưới mỗi lệnh. Các bước được đánh dấu viết lại lịch sử hoặc phá hủy dữ liệu cần cẩn thận khi làm trên nhánh chung.
- Sao chép một lệnh hoặc toàn bộ lệnh rồi chạy trong terminal, từ thư mục của repository.
Hoàn tác thay đổi trong Git — dùng lệnh nào khi nào?
| Tình huống | Lệnh | An toàn với commit đã push? |
|---|---|---|
| Hoàn tác commit cuối, giữ lại thay đổi | git reset --soft HEAD~1 | Không — viết lại lịch sử |
| Hoàn tác commit mà người khác đã pull về | git revert <hash> | Có — thêm một commit mới |
| Bỏ các thay đổi chưa commit trong một file | git restore <file> | Chỉ ảnh hưởng local |
| Sửa thông điệp của commit cuối | git commit --amend | Không — viết lại lịch sử |
| Tạm cất công việc đang dở | git stash push -m "…" | Chỉ ảnh hưởng local |
Viết lại lịch sử an toàn
Các lệnh như reset, commit --amend và rebase tương tác tạo ra commit mới với mã hash mới. Việc này không sao trên nhánh riêng của bạn, nhưng với nhánh chung thì lịch sử của người khác sẽ không còn khớp nữa. Nếu bắt buộc phải push lịch sử đã viết lại, hãy dùng git push --force-with-lease: khác với --force, lệnh này sẽ từ chối ghi đè các commit trên remote mà bạn chưa từng thấy.
Lệnh hiện đại: switch và restore
Từ Git 2.23, git switch (đổi nhánh) và git restore (khôi phục file) tách lệnh git checkout vốn làm quá nhiều việc thành hai lệnh rõ ràng hơn. Công cụ này dùng chúng ở những chỗ giúp mọi thứ dễ hiểu hơn. Trước khi push, hãy giữ repository gọn gàng với một file .gitignore đúng cách, viết release notes bằng Changelog Generator và chọn số phiên bản bằng Semantic Version Calculator.
Cũng được tìm dưới tên: tạo lệnh git, git hoàn tác commit cuối, git đổi tên nhánh, xóa nhánh remote git, git squash commit, git cheat sheet, git revert commit đã push, git bỏ theo dõi file.
Các công cụ dùng kèm tốt với Công cụ tạo lệnh Git
- Tạo Conventional Commit — Viết commit message theo chuẩn Conventional Commits mà không cần nhớ cú pháp.
- GitHub Actions Generator — Chọn công nghệ, trigger và các bước, bạn sẽ nhận được file .github/workflows/ci.yml có chú thích — gồm cài đặt, cache, lint, test, build, ma trận phiên bản và tùy chọn deploy lên GitHub Pages, Vercel hoặc container registry.
- Trình tạo README — Điền vài trường thông tin để nhận một file README.md gọn gàng, sẵn sàng cho GitHub: huy hiệu, cách cài đặt, ví dụ sử dụng, bảng cấu hình, biến môi trường, lộ trình và giấy phép.
- Kiểm tra YAML — Dán file Docker Compose, manifest Kubernetes, workflow GitHub Actions hoặc bất kỳ YAML nào để xác định chính xác lỗi, phát hiện các lỗi thường gặp và nhận bản đã định dạng gọn gàng.
Câu hỏi thường gặp
Làm sao để hoàn tác commit cuối nhưng giữ lại thay đổi?
git reset --soft HEAD~1. Commit sẽ biến mất, còn các thay đổi vẫn nằm trong staging. Nếu muốn giữ chúng ở trạng thái chưa stage, dùng --mixed (mặc định). Đừng làm vậy với commit đã push lên nhánh chung, hãy dùng git revert thay thế.Khác biệt giữa git reset và git revert là gì?
reset di chuyển con trỏ nhánh về trước và xóa commit khỏi lịch sử. revert giữ nguyên lịch sử và thêm một commit mới để hoàn tác thay đổi, nên an toàn với các commit mà người khác đã có.Làm sao để đổi tên nhánh trên máy và trên GitHub?
git branch -m cũ mới, push tên mới lên bằng git push -u origin mới rồi xóa tên cũ bằng git push origin --delete cũ. Nếu cần, cập nhật nhánh mặc định trong phần cài đặt GitHub.git push --force có nguy hiểm không?
--force-with-lease, lệnh này chỉ ghi đè nhánh remote khi nhánh đó vẫn ở đúng vị trí bạn thấy lần cuối.