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.


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

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.


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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.