Ubah nama cabang di repo Git

295

Bagaimana cara mengganti nama cabang yang ada di repo Git?

Saya ingin cabang saat ini memiliki nama baru.

Alex
sumber
2
terima jawaban @Alex atau katakan mengapa kamu tidak mau menerimanya.
Charlie Parker
1
@CharlieParker Mungkin ada hubungannya dengan fakta bahwa ini adalah satu-satunya pertanyaan Alex, dan dia mungkin belum login sejak: "Terakhir terlihat 3 Februari '11 pada 21:29"
yellow-saint
13
@ JP OMG apa kau mengatakan sesuatu mungkin telah terjadi padanya ??? !!!!!!!!!
abbood
1
Mungkinkah jawaban yang sangat dipilih untuk ini diterima?
Steve Chambers
Kemungkinan duplikat dari Bagaimana cara saya mengganti nama cabang Git lokal?
Vineet Jain

Jawaban:

465

Dengan asumsi Anda saat ini berada di cabang yang ingin Anda ganti namanya:

git branch -m newname

Ini didokumentasikan dalam manual untuk git-branch, yang dapat Anda lihat menggunakan

man git-branch

atau

git help branch

Secara khusus, perintahnya adalah

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

di mana parameternya adalah:

   <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> opsional, jika Anda ingin mengganti nama cabang saat ini.

Richard Fearn
sumber
10
Atau git branch -m other-branch renamed-other-branchjika tidak.
mipadi
32
Juga, jika Anda telah mendorong cabang lama ke jarak jauh, Anda dapat menghapusnya dengan git push origin :branchname. Itu akan memungkinkan Anda untuk mendorong yang baru dan menghapus yang lama, pada dasarnya mengganti nama pada remote.
Jonathan
1
@mipadi, ini membuat cabang baru dan tidak menghapus yang sebelumnya.
Mohammad Arif
cabang git (-m | -M) [<oldbranch>] <newbranch> Tidak berfungsi untuk saya, memberikan kesalahan sintaksis.
Mohammad Arif
@MohammedArif Dengan -mitu, mengganti nama cabang tua, sehingga tidak menghapus sebelumnya.
Richard Fearn
177

Jika saat ini Anda berada di cabang yang ingin Anda ganti namanya:

git branch -m new_name 

Atau:

git branch -m old_name new_name 

Anda dapat memeriksa dengan:

git branch -a

Seperti yang Anda lihat, hanya nama lokal yang berubah Sekarang, untuk mengubah nama juga di remote yang harus Anda lakukan:

git push origin :old_name

Ini menghapus cabang, lalu mengunggahnya dengan nama baru:

git push origin new_name

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

javierdvalle
sumber
13
Saya pikir ini adalah jawaban yang benar, jawaban yang sangat dipilih oleh Richard Feam hanya mencakup repo lokal, yang ini mencakup jarak jauh.
user1145404
4
Setuju dengan komentar di atas, jawaban ini lebih lengkap dalam kasus saya. Juga, ketika saya mendorong komit tambahan ke cabang jarak jauh setelah melakukan semua langkah yang disebutkan dalam jawaban ini, git mencoba mendorong ke old_namecabang lagi. Untungnya, git juga disediakan memperbaiki pada command line: git-branch --unset-upstream. Setelah ini, semua komitmen yang didorong pergi ke new_namecabang terpencil.
Hans Roerdinkholder
2
Waspadalah bahwa dengan cara ini Anda kehilangan fakultas untuk mendorong git pushkarena Anda seorang peringatan ketika mengatakan Your branch is based on 'old_name, but the upstream is gone.A git push -u origin new_namemenyelesaikannya.
netalex