Sudahkah Anda memeriksa di pengaturan admin? Proyek saya saat ini di github tidak memiliki cabang tetapi Anda dapat mengganti nama repo di sana jadi saya akan berpikir Anda bisa mengganti nama cabang juga.
evanmcdonnal
12
@ evanmcdonnal Tidak, Anda tidak dapat mengubah nama cabang Git dari situs GitHub.
Andrew Marshall
Jawaban untuk pertanyaan ini hampir secara universal salah. Pertanyaannya bukan bagaimana mengubah nama cabang git, tapi bagaimana cara mengganti nama cabang github . Banyak hal di github terikat pada cabang yang berarti jawaban apa pun perlu mencakup hal-hal itu. Misalnya mengganti nama master menjadi main
gman
@ gman Untuk apa nilainya, tampaknya jawaban ini menjawab semangat pertanyaan OP. Pertanyaan OP mungkin tidak diutarakan dengan sempurna, dari sudut pandang yang secara teknis tepat, atau masalah yang relevan yang sedang Anda perhatikan. Tapi kemudian, pertanyaan ini tidak datang dari latar belakang teknis yang mendalam baik git atau GitHub. Dari perspektif ini, seseorang dapat menganggap ini sebagai pertanyaan "pemula" atau dasar. Dengan demikian, ini diungkapkan, & dijawab dengan tepat untuk pemirsa ini. Frustasi, pasti, tapi saya pikir Q ini, Jawaban ini sesuai / relevan, khususnya untuk penggunaan BLM git / Hub sebelumnya.
SherylHohman
Jawaban:
309
Seperti yang disebutkan, hapus yang lama di Github & tekan kembali, meskipun perintah yang digunakan sedikit lebih bertele-tele daripada yang diperlukan:
Sederhana. Membedah perintah sedikit, perintah git push pada dasarnya:
git push <remote> <local_branch>:<remote_branch>
Jadi melakukan push tanpa local_branch ditentukan pada dasarnya berarti "mengambil apa-apa dari repositori lokal saya, dan menjadikannya cabang jarak jauh". Saya selalu berpikir ini benar-benar kotor, tapi begitulah caranya.
Sunting: Pada Git 1.7 ada sintaks alternatif untuk menghapus cabang jarak jauh:
Perhatikan bahwa argumen posisional dalam perintah shell bermasalah di versi git yang lebih lama (pra 2.8?), Sehingga alias dapat bervariasi sesuai dengan versi git. Lihat diskusi ini untuk detailnya.
Perhatikan bahwa Anda dapat menggabungkan 2 operasi push: git push origin :old_branch new_branch. Ini akan menghapus cabang lama dan mendorong yang baru.
void.pointer
4
Apakah ada alasan mengapa cabang baru tidak dapat didorong sebelum menghapus yang lama? Saya pribadi lebih suka proses di mana operasi penghapusan terjadi setelah operasi buat berhasil, kalau-kalau ada sesuatu yang salah.
jmort253
7
Tidak bekerja. Itu hanya akan menempatkan cabang kembali di Github dengan nama lamanya.
geoff
1
@AdamParkin 1. git branch -m new_branch(ganti nama old_branch menjadi new_branch) 2. git commit -m 'msg', 3. git push4. Mhmm, old_branch muncul di Github, pertanyaan Google dan saya diarahkan ke jawaban Anda 5. git push origin :old_branch(mengatakan itu dihapus) 6. git push origin new_branch... selesai kemudian berkata * [new branch] new_branch -> old_branch. Kembali ke Github dan old_branchmuncul lagi. Jika saya menghapus di Github web UI, saya memiliki opsi untuk "Pulihkan," jadi sepertinya mendorong new_branch baru saja memulihkan.
Kcvin
2
Satu hal yang perlu diperhatikan adalah bahwa ketika Anda mengganti nama cabang, permintaan tarik apa pun yang Anda buka terhadap permintaan tarik itu akan ditutup secara otomatis. Kami harus mengganti nama cabang kembali dan kemudian membuka kembali secara manual semua permintaan tarik ....
Inilah jawaban singkat yang berfungsi. BTW, perintah pertama juga bisa dimasukkan sebagai yang terakhir dalam jawaban.
Eric Wang
jawaban ini mencakup git bukan github
gman
1
Sebenarnya, saya hanya melakukan ini dua kali dan berhasil pada github.
spozun
17
Saya telah menemukan 3 perintah bagaimana Anda dapat mengubah nama cabang git Anda, dan perintah ini adalah cara yang lebih cepat untuk melakukannya
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
Jika Anda memerlukan langkah demi langkah Anda dapat membaca artikel yang bagus ini
git push --set-upstreamadalah bagian terpenting jika Anda mengubah nama cabang secara lokal menggunakan aplikasi github sebelum menghapus cabang jarak jauh.
Ini untuk git dan GitHub di bawah git sehingga akan bekerja dan bekerja dengan saya dan orang lain
Abdelrahman Mohamed
Itu tidak bekerja. Coba langkah pertama dan kedua git branch -m new-name && git push origin :master new-name. Itu akan gagal. Jika jawaban ini hanya tentang git dan bukan github maka pertanyaan ini adalah duplikat dari beberapa pertanyaan lain dan harus ditutup. Jika itu benar-benar tentang github maka jawabannya harus mencakup github. Jawaban ini tidak.
gman
6
Anda dapat melakukannya tanpa terminal, Anda hanya perlu membuat cabang dengan nama baru, dan menghapus yang lama setelahnya. Anda dapat menggunakan pos ini untuk melakukan itu.
Terima kasih, tetapi saya harus beralih ke cabang serta mengimpornya.
Flash Sheridan
1
jawaban ini mencakup git bukan github
gman
0
Artikel ini menunjukkan cara melakukannya dengan sangat mudah.
1. Untuk mengganti nama cabang Git lokal, kita dapat menggunakan perintah Git branch -m untuk memodifikasi nama:
git branch -m feature1 feature2 2. Jika Anda hanya mencari perintah untuk mengubah nama cabang Git jarak jauh, ini dia "
git push -u origin feature2:feature3 Periksa apakah Anda tidak memiliki tag pada cabang sebelum Anda melakukan ini. Anda dapat melakukannya dengan git tag.
lakukan hal yang sama pada semua asal / server jauh Anda (jika ada)
info : pada remote-server biasanya tidak ada direktori ref / remote / * karena Anda sudah di remote-server;) (well mungkin dalam konfigurasi lanjutan git itu mungkin, tetapi saya belum pernah melihat itu)
Cabang sekarang diubah namanya dari awe/some/branchmenjadinew-branch-name (lokal dan jauh!)
Direktori dengan nama cabang dihapus.
Info: Cara ini mungkin bukan yang terbaik, tetapi masih berfungsi untuk orang yang mungkin memiliki masalah dengan cara lain
Dalam kasus saya, saya membutuhkan perintah tambahan
untuk mendorong cabang saya yang diganti nama menjadi push up . git branch --unset-upstream origin newname
(Untuk kemudahan mengetik), saya pertama kali git checkout oldname.
Kemudian jalankan yang berikut ini:
Langkah tambahan ini mungkin hanya diperlukan karena saya (cenderung) mengatur pelacakan jarak jauh melalui cabang saya melalui . Dengan cara ini ketika saya sudah check out, saya hanya perlu mengetik daripadagit push-uorigin oldnameoldnamegit pushgit push origin oldname
Jika saya TIDAK menggunakan perintah git branch --unset-upstreamsebelumnya git push origin newbranch, git menciptakan kembalioldbranch dan mendorong newbranchuntuk origin oldbranch- mengalahkan maksud saya.
@man Point diambil. Solusi saya menggunakan git secara lokal untuk mengubah nama cabang di GitHub, dari jarak jauh, setelah mengubah nama itu pada salinan git lokal dari repositori GitHub. Jadi mungkin itu dapat dianggap sebagai solusi khusus, karena ketika Anda ingin menggunakan baris perintah, daripada antarmuka situs web GitHub, dan Anda memiliki klon lokal yang juga ingin Anda perbarui. Terima kasih telah menyoroti perbedaan ini, dan mengklarifikasi bahwa jawaban ini untuk kasus khusus, bukan solusi umum.
SherylHohman
Masalahnya adalah fitur github ties ke cabang. Cobalah mengganti nama master menjadi utama dan instruksi Anda akan gagal.
GM
-1
Perintah berikut mengubah nama cabang secara lokal, menghapus cabang lama di lokasi jarak jauh dan mendorong cabang baru, mengatur cabang lokal untuk melacak jarak jauh baru:
Meskipun cuplikan kode Anda mungkin menyelesaikan masalah, Anda harus menjelaskan apa tujuan kode Anda (bagaimana memecahkan masalah). Selanjutnya, Anda mungkin ingin memeriksa stackoverflow.com/help/how-to-answer
Ahmad F
jawaban ini mencakup git bukan github
gman
-1
Sesederhana itu . Untuk mengganti nama cabang git secara lokal dan menggunakan potongan ini dari jarak jauh (diuji dan bekerja seperti mantra):
Referensi Git:
Dengan opsi -m atau -M , akan diubah namanya menjadi. Jika memiliki reflog yang sesuai, namanya diubah agar sesuai, dan entri reflog dibuat untuk mengingat penggantian nama cabang. Jika ada, -M harus digunakan untuk memaksa penggantian nama terjadi.
Hapus Langkah:
Referensi Git:
git push origin: eksperimental Temukan ref yang cocok dengan eksperimen dalam repositori asal (mis. Ref / head / eksperimental), dan hapus.
Perbarui pada repo jarak jauh Langkah (referensi hulu untuk pelacakan):
Referensi Git:
--set-upstream Untuk setiap cabang yang up to date atau berhasil didorong, tambahkan referensi upstream (pelacakan), digunakan oleh argumen-less git-pull [1] dan perintah lainnya. Untuk informasi lebih lanjut, lihat branch..merge in git-config [1].
Pada cabang git, jalankan cabang git -m old_name new_name. Ini akan mengubah nama cabang pada repo lokal git Anda. cabang terpencil. Ini menyelesaikan masalah
Jawaban:
Seperti yang disebutkan, hapus yang lama di Github & tekan kembali, meskipun perintah yang digunakan sedikit lebih bertele-tele daripada yang diperlukan:
Sederhana. Membedah perintah sedikit, perintah git push pada dasarnya:
Jadi melakukan push tanpa local_branch ditentukan pada dasarnya berarti "mengambil apa-apa dari repositori lokal saya, dan menjadikannya cabang jarak jauh". Saya selalu berpikir ini benar-benar kotor, tapi begitulah caranya.
Sunting: Pada Git 1.7 ada sintaks alternatif untuk menghapus cabang jarak jauh:
Sunting: Seperti yang disebutkan oleh @ void.pointer di komentar
Ini bisa diubah menjadi alias sederhana yang menggunakan remote, cabang asli dan nama cabang baru sebagai argumen, di
~/.gitconfig
:Pemakaian:
Perhatikan bahwa argumen posisional dalam perintah shell bermasalah di versi git yang lebih lama (pra 2.8?), Sehingga alias dapat bervariasi sesuai dengan versi git. Lihat diskusi ini untuk detailnya.
sumber
git push origin :old_branch new_branch
. Ini akan menghapus cabang lama dan mendorong yang baru.git branch -m new_branch
(ganti nama old_branch menjadi new_branch) 2.git commit -m 'msg'
, 3.git push
4. Mhmm, old_branch muncul di Github, pertanyaan Google dan saya diarahkan ke jawaban Anda 5.git push origin :old_branch
(mengatakan itu dihapus) 6.git push origin new_branch
... selesai kemudian berkata* [new branch] new_branch -> old_branch
. Kembali ke Github danold_branch
muncul lagi. Jika saya menghapus di Github web UI, saya memiliki opsi untuk "Pulihkan," jadi sepertinya mendorong new_branch baru saja memulihkan.Perintah berikut bekerja untuk saya:
sumber
Saya telah menemukan 3 perintah bagaimana Anda dapat mengubah nama cabang git Anda, dan perintah ini adalah cara yang lebih cepat untuk melakukannya
Jika Anda memerlukan langkah demi langkah Anda dapat membaca artikel yang bagus ini
Bagaimana Mengganti Nama Git Cabang Lokal dan Remote
sumber
git push --set-upstream
adalah bagian terpenting jika Anda mengubah nama cabang secara lokal menggunakan aplikasi github sebelum menghapus cabang jarak jauh.Hapus saja cabang lama dan buat yang baru.
Contoh (hanya mengganti nama cabang jarak jauh):
Anda juga mungkin harus mengganti nama cabang lokal dan mengubah pengaturan tempat mendorong / menarik.
sumber
git push origin newname:refs/heads/newname
? master dan newname mungkin tidak menunjuk ke komit yang sama.Ganti nama cabang di git lokal dan jarak jauh
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.
Beralih ke cabang dan kemudian:
Jadi kesimpulannya adalah
sumber
git branch -m new-name && git push origin :master new-name
. Itu akan gagal. Jika jawaban ini hanya tentang git dan bukan github maka pertanyaan ini adalah duplikat dari beberapa pertanyaan lain dan harus ditutup. Jika itu benar-benar tentang github maka jawabannya harus mencakup github. Jawaban ini tidak.Anda dapat melakukannya tanpa terminal, Anda hanya perlu membuat cabang dengan nama baru, dan menghapus yang lama setelahnya. Anda dapat menggunakan pos ini untuk melakukan itu.
https://github.com/blog/1377-create-and-delete-branches
sumber
Inilah yang bekerja untuk saya:
1.) Buat cabang baru terlebih dahulu: git push github newname: refs / heads / newname
2.) Di situs github, pengaturan goto dan ubah cabang Default ke nama baru
3.) Hapus oldname git push github --delete oldname
sumber
sumber
Artikel ini menunjukkan cara melakukannya dengan sangat mudah.
1. Untuk mengganti nama cabang Git lokal, kita dapat menggunakan perintah Git branch -m untuk memodifikasi nama:
git branch -m feature1 feature2
2. Jika Anda hanya mencari perintah untuk mengubah nama cabang Git jarak jauh, ini dia "
git push -u origin feature2:feature3
Periksa apakah Anda tidak memiliki tag pada cabang sebelum Anda melakukan ini. Anda dapat melakukannya dengan
git tag
.sumber
Cara lain adalah mengubah nama file-file berikut :
.git/refs/head/[branch-name]
menjadi.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
menjadi.git/refs/remotes/[all-remote-names]/new-branch-name
Ganti nama head & remote pada PC lokal Anda dan pada asal-usul / server jauh
Cabang sekarang diganti namanya (lokal dan jauh!)
Perhatian
Jika nama cabang Anda saat ini mengandung garis miring (
/
) git akan membuat direktori seperti:nama cabang saat ini:
"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
berharap nama cabang:
"new-branch-name"
branch
file dari.git/refs/*/awe/some/
.git/refs/head/
.branch
file dari semua.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
file yang disalin menjadinew-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
Cabang sekarang diubah namanya dari
awe/some/branch
menjadinew-branch-name
(lokal dan jauh!)Direktori dengan nama cabang dihapus.
Info: Cara ini mungkin bukan yang terbaik, tetapi masih berfungsi untuk orang yang mungkin memiliki masalah dengan cara lain
sumber
Dalam kasus saya, saya membutuhkan perintah tambahan untuk mendorong cabang saya yang diganti nama menjadi push up .
git branch --unset-upstream
origin newname
(Untuk kemudahan mengetik), saya pertama kali
git checkout oldname
.Kemudian jalankan yang berikut ini:
git branch -m newname
git push origin :oldname
atau ataugit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Langkah tambahan ini mungkin hanya diperlukan karena saya (cenderung) mengatur pelacakan jarak jauh melalui cabang saya melalui . Dengan cara ini ketika saya sudah check out, saya hanya perlu mengetik daripada
git push
-u
origin oldname
oldname
git push
git push origin oldname
Jika saya TIDAK menggunakan perintah
git branch --unset-upstream
sebelumnyagit push origin newbranch
, git menciptakan kembalioldbranch
dan mendorongnewbranch
untukorigin oldbranch
- mengalahkan maksud saya.sumber
Perintah berikut mengubah nama cabang secara lokal, menghapus cabang lama di lokasi jarak jauh dan mendorong cabang baru, mengatur cabang lokal untuk melacak jarak jauh baru:
sumber
Sesederhana itu . Untuk mengganti nama cabang git secara lokal dan menggunakan potongan ini dari jarak jauh (diuji dan bekerja seperti mantra):
Penjelasan:
Ganti nama Langkah:
Hapus Langkah:
Perbarui pada repo jarak jauh Langkah (referensi hulu untuk pelacakan):
sumber
3 langkah sederhana
git dorong kepala asal
git branch -m nama-cabang-lama-nama-cabang baru
git dorong kepala asal
sumber
Pada cabang git, jalankan cabang git -m old_name new_name. Ini akan mengubah nama cabang pada repo lokal git Anda. cabang terpencil. Ini menyelesaikan masalah
sumber