Saya tidak ingin mengubah nama cabang jarak jauh, seperti yang dijelaskan dalam Ubah nama cabang utama untuk repositori Git lokal dan jarak jauh .
Bagaimana saya bisa mengganti nama cabang lokal yang belum didorong ke cabang jarak jauh?
Jika Anda perlu mengganti nama cabang jarak jauh juga:
Bagaimana cara mengganti nama baik nama cabang lokal Git dan jarak jauh
sumber
git push -f --mirror
, maka itu akan mengubah nama cabang pada remote, tetapi Anda hanya harus menggunakan metode ini jika remote hanya menjadi salinan repositori Anda saat ini. Lihat juga pertanyaan ini: stackoverflow.com/questions/1526794/git-rename-remote-branchpush.default
dikonfigurasi. Secara default (matching
) itu akan mendorong ke remote yang namanya cocok. Anda harus melakukangit push origin <newname>:<oldname>
atau Anda akan membuat cabang jarak jauh baru. Namun, jikapush.default
diatur keupstream
, maka Anda bisapush origin head
dan semuanya akan pergi ke oldname di remote.mv
untuk mengganti nama file. Alasan untuk ini adalah bahwa pemindahan dan penggantian nama, dalam sistem file inode berbasis direktori, sepenuhnya sama.-m
opsi adalah--move
, misalnya,git branch --move master
mengubah nama cabang saat ini untuk disebut "master".Perintah di atas akan mengubah nama cabang Anda, tetapi Anda harus sangat berhati-hati menggunakan cabang yang diganti nama, karena masih akan merujuk ke cabang hulu lama yang terkait dengannya, jika ada.
Jika Anda ingin mendorong beberapa perubahan menjadi master setelah cabang lokal Anda diubah namanya menjadi new_branch_name (nama contoh):
git push origin new_branch_name:master
(sekarang perubahan akan pergi ke cabang master tetapi nama cabang lokal Anda adalah new_branch_name)Untuk detail lebih lanjut, lihat " Cara mengganti nama nama cabang lokal Anda di Git ."
sumber
Untuk mengganti nama cabang Anda saat ini:
sumber
Berikut langkah-langkah untuk mengganti nama cabang:
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
EDIT (12/01/2017): Pastikan Anda menjalankan perintah
git status
dan memeriksa bahwa cabang yang baru dibuat menunjuk ke ref sendiri dan bukan yang lebih lama. Jika Anda menemukan referensi ke cabang yang lebih tua, Anda harus membatalkan set upstream menggunakan:sumber
Ganti nama cabang akan berguna setelah cabang Anda selesai. Kemudian barang baru akan datang, dan Anda ingin berkembang di cabang yang sama alih-alih menghapusnya dan membuat yang baru.
Dari pengalaman saya, untuk mengganti nama cabang lokal dan jarak jauh di Git, Anda harus melakukan langkah-langkah berikut.
1. Ganti nama cabang lokal Anda
Jika Anda berada di cabang yang ingin Anda ganti namanya:
Jika Anda berada di cabang yang berbeda:
2. Hapus cabang jarak jauh nama lama dan dorong cabang lokal nama baru
3. Setel ulang cabang upstream untuk cabang lokal nama baru
sumber
error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git'
git push origin :old-name new-name
kan?Jawabannya sejauh ini benar, tetapi di sini ada beberapa informasi tambahan:
Seseorang dapat dengan aman mengganti nama cabang dengan '-m' (bergerak), tetapi kita harus berhati-hati dengan '-M', karena itu memaksa nama tersebut, bahkan jika ada cabang yang sudah ada dengan nama yang sama sudah. Berikut adalah kutipan dari halaman manual 'git-branch':
sumber
-M
Bendera ini juga berguna untuk memaksa mengubah nama jika Anda hanya mengoreksi kasus nama cabang, misalnya mengubahmyBranch
keMyBranch
. (Dengan-m
, git kembalifatal: A branch named 'MyBranch' already exists.
)1. Ganti nama
Jika itu adalah cabang Anda saat ini, lakukan saja
Jika cabang lain yang ingin Anda ganti namanya
2. Lacak cabang jarak jauh yang baru
- Jika cabang Anda didorong, maka setelah mengganti nama Anda harus menghapusnya dari repositori Git jarak jauh dan meminta lokal baru Anda untuk melacak cabang jarak jauh baru:
sumber
Aku dengan bodohnya memberi nama cabang yang dimulai dengan tanda hubung, dan kemudian memeriksa master. Saya tidak ingin menghapus cabang saya, saya punya pekerjaan di dalamnya.
Tak satu pun dari ini bekerja:
git checkout -dumb-name
git checkout -- -dumb-name
"
s,'
s dan\
s juga tidak membantu.git branch -m
tidak bekerjaInilah cara saya akhirnya memperbaikinya. Pergilah ke copy pekerjaan Anda .git / refs / head, cari nama file "-dumb-name", dapatkan hash dari cabang. Maka ini akan memeriksanya, membuat cabang baru dengan nama waras, dan menghapus yang lama.
sumber
reflog
Untuk mengganti nama cabang secara lokal:
Sekarang Anda harus menyebarkan perubahan ini di server jauh Anda juga.
Untuk mendorong perubahan dari cabang lama yang dihapus:
Untuk mendorong perubahan pembuatan cabang baru:
sumber
Hanya tiga langkah untuk meniru perubahan nama di
remote
dan juga di GitHub:Langkah 1
git branch -m old_branchname new_branchname
Langkah 2
git push origin :old_branchname new_branchname
Langkah 3
git push --set-upstream origin new_branchname
sumber
git push --set-upstream origin new_branchname
yang disebutkan dalam @Nomade answerGanti nama cabang menggunakan perintah ini:
-m
: Ini mengubah nama / memindahkan cabang. Jika sudah ada cabang, Anda akan mendapatkan kesalahan.Jika sudah ada cabang dan Anda ingin mengganti nama dengan cabang itu, gunakan:
Untuk informasi lebih lanjut tentang bantuan, gunakan perintah ini di terminal:
atau
sumber
Pengguna Advanced Git dapat mengubah nama secara manual menggunakan:
sumber
Jika Anda berada di cabang yang ingin Anda ganti namanya:
Jika Anda berada di cabang yang berbeda:
git push origin :old-name new-name
git push origin -u new-name
Atau untuk cara cepat melakukannya, Anda dapat menggunakan 3 langkah ini:
# Ganti nama cabang secara lokal
# Hapus cabang jarak jauh yang lama
# Dorong cabang baru, atur cabang lokal untuk melacak remote baru
Referensi: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
sumber
Berikut adalah tiga langkah: Perintah yang dapat Anda panggil di dalam terminal Anda dan ubah nama cabang.
Jika Anda membutuhkan lebih banyak: langkah demi langkah, Cara Mengubah Nama Cabang Git adalah artikel yang bagus tentang itu.
sumber
Mungkin seperti yang disebutkan oleh orang lain, ini akan menjadi kasus ketidakcocokan dalam penamaan cabang.
Jika Anda memiliki situasi seperti itu, saya dapat menebak bahwa Anda menggunakan Windows yang juga akan mengarahkan Anda ke:
Maka Anda harus melakukan langkah menengah:
Tidak ada lagi.
sumber
-M
alih-alih-m
melakukan semacam ini "ganti casing" ganti nama dalam satu langkah.Mencoba menjawab secara khusus untuk pertanyaan (setidaknya judul).
Anda juga dapat mengganti nama cabang lokal , tetapi tetap melacak nama lama di remote.
Sekarang, ketika Anda menjalankan
git push
,old_branch
referensi jarak jauh diperbarui dengan lokal Andanew_branch
.Anda harus mengetahui dan mengingat konfigurasi ini. Tetapi ini bisa bermanfaat jika Anda tidak memiliki pilihan untuk nama cabang jarak jauh, tetapi Anda tidak menyukainya (oh, maksud saya, Anda punya alasan yang sangat bagus untuk tidak menyukainya!) Dan lebih suka yang lebih jelas nama untuk cabang lokal Anda.
Bermain dengan konfigurasi ambil, Anda bahkan dapat mengganti nama referensi jarak jauh lokal. yaitu, memiliki
refs/remote/origin/new_branch
pointer ref ke cabang, yang notabeneold_branch
onorigin
. Namun, saya sangat tidak menyarankan ini, untuk keselamatan pikiran Anda.sumber
Mengubah cabang secara lokal cukup mudah ...
Jika Anda berada di cabang yang ingin Anda ganti namanya, cukup lakukan ini:
Jika tidak, jika Anda berada di
master
atau cabang lain selain yang ingin Anda ganti namanya, cukup lakukan:Juga, saya membuat gambar di bawah ini untuk menunjukkan ini dalam tindakan pada baris perintah . Dalam hal ini, Anda berada di
master
cabang, misalnya:sumber
Jika Anda bersedia menggunakan SourceTree (yang sangat saya rekomendasikan), Anda dapat mengklik kanan cabang Anda dan memilih 'Ganti Nama'.
sumber
Untuk mengganti nama cabang saat ini (kecuali untuk kondisi HEAD yang terlepas) Anda juga dapat menggunakan alias ini:
sumber
Opsi lain adalah tidak menggunakan baris perintah sama sekali. Klien Git GUI seperti SourceTree mengambil banyak kurva pembelajaran sintaksis / rasa sakit yang menyebabkan pertanyaan seperti ini menjadi salah satu yang paling banyak dilihat di Stack Overflow.
Di SourceTree, klik kanan pada cabang lokal di panel "Cabang" di sebelah kiri dan pilih "Ganti nama ...".
sumber
Cara mudah untuk melakukannya:
Untuk lebih lanjut, lihat ini .
sumber
Karena Anda tidak ingin mendorong cabang ke server jauh, contoh ini akan berguna:
Katakanlah Anda memiliki cabang yang ada yang disebut "fitur-panas-ku", dan Anda ingin mengubah nama menjadi "fitur-15."
Pertama, Anda ingin mengubah cabang lokal Anda. Ini tidak bisa lebih mudah:
Untuk informasi lebih lanjut, Anda dapat mengunjungi Secara Lokal dan Mengganti Nama Jarak Jauh Cabang di Git .
sumber
Git versi 2.9.2
Jika Anda ingin mengubah nama cabang lokal Anda berada di:
Jika Anda ingin mengubah nama cabang yang berbeda:
Jika Anda ingin mengubah nama cabang yang berbeda menjadi nama yang sudah ada:
Catatan: Perintah terakhir bersifat merusak dan akan mengganti nama cabang Anda, tetapi Anda akan kehilangan cabang lama dengan nama itu dan itu dilakukan karena nama-nama cabang harus unik.
sumber
Jika Anda ingin mengubah nama cabang saat ini, jalankan:
Jika Anda ingin menghapus cabang jarak jauh yang lama, jalankan:
Jika Anda ingin menghapus cabang jarak jauh yang lama dan membuat cabang jarak jauh yang baru, jalankan:
sumber
Ganti nama cabang Git dapat dilakukan dengan menggunakan:
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
Perbedaan antara -m dan -M :
-m: jika Anda mencoba mengubah nama cabang Anda dengan nama cabang yang ada menggunakan -m . Ini akan memunculkan kesalahan dengan mengatakan bahwa cabang sudah ada. Anda harus memberi nama yang unik.
Tapi,
-M: ini akan membantu Anda untuk memaksa mengganti nama dengan nama yang diberikan, meskipun itu ada. Jadi cabang yang ada akan menimpa sepenuhnya dengan itu ...
Berikut adalah contoh terminal Git,
sumber
Untuk pengguna Git GUI itu tidak bisa lebih sederhana. Di Git GUI, pilih nama cabang dari daftar turun bawah di kotak dialog "Ubah Nama Cabang" yang dibuat dari item menu Cabang: Ubah nama, ketikkan Nama Baru, dan klik "Ganti nama". Saya telah menyoroti di mana menemukan daftar drop down.
sumber
Jika Anda menghendaki:
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
sumber
Semua jawaban sebelumnya dibicarakan
git branch -m
. Tentu saja, mudah dioperasikan, tetapi bagi saya, mungkin agak sulit mengingat perintah Git yang lain. Jadi saya mencoba menyelesaikan pekerjaan dengan perintah yang saya kenal. Ya, Anda bisa menebaknya.Saya menggunakan
git branch -b <new_branch_name>
. Dan jika Anda tidak ingin menyimpan cabang lama sekarang, Anda dapat menjalankangit branch -D <old_branch_name>
untuk menghapusnya.Saya tahu ini mungkin sedikit membosankan, tetapi lebih mudah dipahami dan diingat. Saya harap ini membantu Anda.
sumber
Dalam PhpStorm:
VCS → Git → Cabang ... → Cabang Lokal → _your_branch_ → Ubah nama
sumber
Yang harus Anda lakukan adalah tiga langkah:
sumber