Git: đổi tên nhánh
Cập nhật lần cuối
Bạn đổi tên nhánh bằng git branch -m (chữ -m là viết tắt của "move"). Với một đối số, lệnh đổi tên nhánh bạn đang đứng; với hai đối số, lệnh đổi tên bất kỳ nhánh nào theo tên. Việc đổi tên chỉ diễn ra ở máy bạn: nếu nhánh đã được push, bạn còn phải xóa tên cũ trên remote và push tên mới lên.
Bạn có thể thử các lệnh này trong terminal playground: một shell thật ngay trên trình duyệt, không cần cài đặt gì.
Cú pháp
| Lệnh | Tác dụng |
|---|---|
git branch -m new-name | Đổi tên nhánh bạn đang đứng |
git branch -m old-name new-name | Đổi tên một nhánh khác theo tên |
git branch -M new-name | Ép đổi tên (ghi đè tên đã tồn tại) |
Đổi tên một nhánh đã có trên remote
Đổi tên chỉ diễn ra cục bộ, nên nhánh đã push cần thêm ba bước.
| Bước | Lệnh | Kết quả |
|---|---|---|
| 1 | git branch -m old new | Đổi tên nhánh ở máy bạn |
| 2 | git push origin --delete old | Xóa tên cũ trên remote |
| 3 | git push -u origin new | Push tên mới và đặt upstream |
Câu hỏi thường gặp về đổi tên nhánh Git
Làm sao đổi tên nhánh mình đang đứng?
git branch -m new-name chỉ với tên mới. Git đổi tên nhánh hiện tại ngay tại chỗ: bạn vẫn ở trên nhánh đó, còn commit và lịch sử giữ nguyên.Làm sao đổi tên một nhánh mà không cần chuyển sang nó?
git branch -m old-name new-name. Lệnh này đổi old-name thành new-name kể cả khi bạn đang ở một nhánh khác.Làm sao đổi tên một nhánh đã có trên GitHub?
git branch -m old new, xóa tên cũ trên remote bằng git push origin --delete old, rồi push tên mới và đặt upstream bằng git push -u origin new. Những ai đang có nhánh cũ sẽ cần cập nhật bản cục bộ của họ.-m và -M khác nhau thế nào?
-m (move) đổi tên nhánh nhưng sẽ từ chối nếu đã có nhánh mang tên đích, nên bạn không lỡ tay ghi đè nhánh khác. -M ép đổi tên, ghi đè lên nhánh đã có tên đó. Hãy dùng -m, trừ khi bạn thực sự muốn ghi đè.Có thể luyện tập lệnh này online không?
Có. Mở terminal playground để 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ì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn trọn vẹn về nhánh.