09-03-2025 · rock288
So sánh git push --force và git push --force-with-lease
1. git push --force
- Chức năng: Ghi đè toàn bộ lịch sử commit của nhánh từ xa bằng lịch sử commit của nhánh local.
- Nguy cơ: Có thể vô tình ghi đè và mất các commit quan trọng đã được đẩy lên từ người khác.
- Khi nào dùng?
- Chỉ nên dùng khi chắc chắn rằng không ai khác đã push lên nhánh từ xa kể từ lần cuối cùng bạn pull.
2. git push --force-with-lease
- Chức năng: Chỉ force push nếu nhánh từ xa vẫn giống với trạng thái mà bạn đã fetch lần gần nhất.
- Cơ chế bảo vệ: Nếu có ai đó đã push commit mới lên nhánh từ xa mà bạn chưa fetch về, lệnh sẽ báo lỗi thay vì ghi đè.
- Khi nào dùng?
- Khi muốn đảm bảo rằng bạn không vô tình ghi đè commit của người khác.
3. Nên dùng cái nào?
- Ưu tiên sử dụng --force-with-lease để tránh mất commit từ người khác.
- Chỉ dùng --force trong trường hợp bạn chắc chắn rằng không có ai khác push lên nhánh từ xa kể từ lần cuối cùng bạn pull.
4. Ví dụ sử dụng