Thay đổi tên chi nhánh trong repo Git


295

Làm cách nào để đổi tên một chi nhánh hiện có trong repo Git?

Tôi muốn chi nhánh hiện tại có một tên mới.


2
chấp nhận câu trả lời @Alex hoặc nói lý do tại sao bạn không muốn chấp nhận nó.
Charlie Parker

1
@CharlieParker Nó có thể có cái gì để làm với thực tế rằng đây là câu hỏi duy nhất của Alex, và ông có thể đã không đăng nhập từ: "Xem lần cuối ngày 03 Tháng 2 '11 21:29"
vàng-thánh

13
@JB OMG bạn đang nói điều gì đó có thể đã xảy ra với anh ta ??? !!!!!!!!!
abbood

1
Câu trả lời được bình chọn cao cho điều này có thể được chấp nhận?
Steve Chambers

Câu trả lời:


465

Giả sử bạn hiện đang ở chi nhánh bạn muốn đổi tên:

git branch -m newname

Điều này được ghi lại trong hướng dẫn sử dụng git-branch, mà bạn có thể xem bằng cách sử dụng

man git-branch

hoặc là

git help branch

Cụ thể, lệnh là

git branch (-m | -M) [<oldbranch>] <newbranch>

trong đó các tham số là:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch> là tùy chọn, nếu bạn muốn đổi tên chi nhánh hiện tại.


10
Hoặc git branch -m other-branch renamed-other-branchnếu bạn không.
mipadi

32
Ngoài ra, nếu bạn đã đẩy nhánh cũ sang điều khiển từ xa, bạn có thể xóa nó bằng git push origin :branchname. Điều đó sẽ cho phép bạn đẩy cái mới và xóa cái cũ, về cơ bản đổi tên nó trên điều khiển từ xa.
Jonathan

1
@mipadi, nó tạo ra nhánh mới và không xóa cái trước đó.
Mohammad Arif

nhánh git (-m | -M) [<oldbranch>] <newbranch> Không hoạt động với tôi, đưa ra lỗi cú pháp.
Mohammad Arif

@MohammedArif Với -m, nó đổi tên nhánh cũ, vì vậy nó sẽ xóa cái trước đó.
Richard Fearn

177

Nếu bạn hiện đang ở chi nhánh bạn muốn đổi tên:

git branch -m new_name 

Hoặc cái gì đó khác:

git branch -m old_name new_name 

Bạn có thể kiểm tra với:

git branch -a

Như bạn có thể thấy, chỉ có tên địa phương đã thay đổi Bây giờ, để thay đổi tên cũng trong điều khiển từ xa, bạn phải làm:

git push origin :old_name

Thao tác này sẽ xóa chi nhánh, sau đó tải lên với tên mới:

git push origin new_name

Nguồn: https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github


13
Tôi nghĩ rằng đây là câu trả lời chính xác, câu trả lời được bình chọn cao bởi Richard Feam chỉ bao gồm repo địa phương, câu trả lời này bao gồm từ xa.
dùng1145404

4
Đồng ý với nhận xét trên, câu trả lời này đã đầy đủ hơn trong trường hợp của tôi. Ngoài ra, khi tôi đẩy các cam kết bổ sung vào nhánh từ xa sau khi thực hiện tất cả các bước được đề cập trong câu trả lời này, git đã cố gắng đẩy sang old_namenhánh một lần nữa. May mắn thay, git cũng cung cấp một bản sửa lỗi trong dòng lệnh : git-branch --unset-upstream. Sau đó, tất cả các cam kết đẩy đã đi đến new_namechi nhánh từ xa.
Hans Roerdinkholder

2
Hãy cẩn thận rằng theo cách này bạn đã mất các giảng viên để thúc đẩy git pushbởi vì bạn nhẹ nhàng cảnh báo rằng Your branch is based on 'old_name, but the upstream is gone.A git push -u origin new_namegiải quyết nó.
netalex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.