Xử lý lỗi phổ biến trong Git & GitHub

1. Quên git add trước khi commit

Triệu chứng: git commit xong mà không thấy file được lưu.

Cách xử lý:

git add .
git commit --amend

--amend giúp bạn sửa lại commit cuối cùng.


2. Push sai lên GitHub

Cách sửa commit và push lại:

git commit --amend
git push --force

⚠️ Chỉ dùng --force nếu bạn chắc chắn, và không ai khác đang dùng chung nhánh!


3. Quên pull code trước khi push → bị lỗi reject

Thông báo lỗi:

error: failed to push some refs to 'origin/main'

Cách xử lý:

git pull origin main --rebase
git push

--rebase giúp lịch sử sạch hơn so với merge.


4. Xung đột khi merge (merge conflict)

Cách xử lý:

  1. Mở file bị conflict, tìm đoạn như sau:
<<<<<<< HEAD
Nội dung của bạn
=======
Nội dung của người khác
>>>>>>> ten-nhanh
  1. Giải quyết bằng tay → xoá <<<<<<<, =======, >>>>>>>
  2. Rồi:
git add <file>
git commit

5. Lỡ xoá file nhưng chưa commit

Khôi phục lại:

git restore <file>

6. Lỡ commit nhưng chưa push, muốn chỉnh sửa nội dung

# Sửa lại nội dung code
git add .
git commit --amend

7. Lỡ commit sai email hoặc tên

git config --global user.name "Tên đúng"
git config --global user.email "Email đúng"

Nếu muốn sửa commit cũ:

git commit --amend --reset-author

8. Lỡ push nhầm branch

Bạn có thể xóa nhánh đó khỏi GitHub:

git push origin --delete ten-nhanh

9. Undo các loại hành động

Hành độngCách undo
Undo addgit reset <file>
Undo commit chưa pushgit reset --soft HEAD~1
Undo commit + quay lại codegit reset --hard HEAD~1
Lỡ sửa file chưa add/commitgit restore <file>
Khôi phục file từ commit cũgit checkout <commit-hash> -- <file>

10. Xem lại lịch sử hành động

git log
git log --oneline
git reflog

git reflog giúp bạn quay về một trạng thái trước đó nếu "toang".


✅ Tổng kết:

  • Git rất linh hoạt, gần như mọi lỗi đều có thể cứu vãn.
  • Luôn kiểm tra kỹ trước khi dùng push --force hay reset --hard.
  • git log, git status, git diff, git reflog là "bộ cứu sinh".