Menu
CoddyTech

Git: Xóa một nhánh local

Cập nhật lần cuối

Khi công việc trên một nhánh đã được merge, bạn xóa nhánh đó bằng git branch -d <branch>. Git sẽ từ chối nếu nhánh có commit chưa được merge vào đâu cả, đây là một bước kiểm tra an toàn. Để vẫn xóa, dùng -D viết hoa. Xóa nhánh local không bao giờ ảnh hưởng đến bản sao trên remote; việc đó cần một lệnh riêng.

Thử các lệnh này trong playground terminal: một shell thật ngay trên trình duyệt, không cần cài đặt gì.

git branch -d chỉ xóa con trỏ nhánh. Các commit đã merge vẫn nằm trong lịch sử của main.

Cú pháp

LệnhTác dụng
git branch -d featureXóa feature (chỉ khi đã merge)
git branch -D featureXóa cưỡng bức feature kể cả khi chưa merge
git branch -d branch1 branch2Xóa nhiều nhánh cùng lúc

Tình huống thường gặp

Mục tiêuLệnh
Xóa một nhánh đã mergegit branch -d old-feature
Xóa cưỡng bức một nhánh chưa mergegit branch -D scratch
Xóa nhánh bạn đang đứnggit switch main rồi git branch -d feature
Xem những nhánh nào đã mergegit branch --merged

Ví dụ minh họa

Hoàn thành một tính năng, merge nó rồi dọn nhánh local.

BướcLệnhKết quả
1git switch mainRời khỏi nhánh bạn muốn xóa
2git merge featureĐưa các commit của tính năng vào main
3git branch -d featureXóa nhánh vừa được merge

Câu hỏi thường gặp về xóa nhánh local

git branch -d và -D khác nhau thế nào?
-d là cách xóa an toàn: Git chỉ xóa nhánh nếu các commit của nó đã được merge vào nhánh khác, nên bạn không thể vô tình mất công sức. -D là xóa cưỡng bức (viết tắt của --delete --force): nó xóa nhánh bất kể thế nào, kể cả khi còn commit chưa merge. Mặc định hãy dùng -d, và chỉ dùng -D khi chắc chắn muốn bỏ đi các commit của nhánh đó.
Làm sao để xóa nhánh mình đang đứng?
Bạn không thể xóa nhánh đang được checkout. Trước hết chuyển sang nhánh khác bằng git switch main (hoặc git checkout main), rồi chạy git branch -d feature. Nếu bạn cố xóa nhánh hiện tại, Git sẽ báo lỗi "Cannot delete branch ... checked out".
Xóa nhánh local có xóa nhánh trên GitHub không?
Không. git branch -d chỉ xóa nhánh khỏi repository local của bạn. Nhánh trên remote (GitHub, GitLab, v.v.) vẫn còn cho đến khi bạn xóa riêng bằng git push origin --delete feature.
Có khôi phục được nhánh đã xóa không?
Thường là được, nếu mới xóa gần đây. Chạy git reflog để tìm commit mà nhánh từng trỏ tới, rồi tạo lại nhánh bằng git branch feature <commit-hash>. Các commit không bị dọn dẹp (garbage collection) ngay, nên một nhánh lỡ tay xóa thường vẫn khôi phục được.
Có thể luyện tập lệnh này online không?

Có. Mở playground terminal để chạy các lệnh này trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khi muốn học có lộ trình, khóa học Git tương tác miễn phí của Coddy dẫn bạn từ commit đầu tiên đến tạo nhánh và merge từng bước.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học Git cùng Coddy

Bắt đầu