Yerel şubemi kullanarak adını değiştirdim
git branch -m oldname newname
ancak bu yalnızca dalın yerel sürümünü yeniden adlandırır. GitHub'da olanı nasıl yeniden adlandırabilirim?
Yerel şubemi kullanarak adını değiştirdim
git branch -m oldname newname
ancak bu yalnızca dalın yerel sürümünü yeniden adlandırır. GitHub'da olanı nasıl yeniden adlandırabilirim?
Yanıtlar:
Belirtildiği gibi, kullanılan komutlar gerekenden biraz daha ayrıntılı olsa da, Github'daki eski olanı silin ve yeniden itin:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Basit. Komutları biraz parçalayarak, git push komutu esasen:
git push <remote> <local_branch>:<remote_branch>
Bu nedenle, local_branch belirtilmemiş bir push yapmak, esasen "yerel veri havuzumdan hiçbir şey alma ve uzak şube yap" anlamına gelir. Her zaman bunun tamamen kludgy olduğunu düşündüm, ama böyle yapıldı.
Düzenleme: Git 1.7 itibarıyla uzak bir dalı silmek için alternatif bir sözdizimi vardır:
git push origin --delete name_of_the_remote_branch
Düzenleme: Yorumlarda @ void.pointer tarafından belirtildiği gibi
2 itme işlemini birleştirebileceğinizi unutmayın:
git push origin :old_branch new_branch
Bu işlem hem eski dalı silecek hem de yeni dalı silecek
Bu, uzak, orijinal dalı ve yeni şube adını bağımsız değişken olarak alan basit bir takma ada dönüştürülebilir ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Kullanımı:
git branchm origin old_branch new_branch
Kabuk komutlarındaki konumsal bağımsız değişkenlerin git'in eski (ön 2.8? Öncesi) sürümlerinde sorunlu olduğuna dikkat edin, bu nedenle takma ad git sürümüne göre değişebilir. Ayrıntılar için bu tartışmaya bakın.
git push origin :old_branch new_branch
. Bu işlem hem eski dalı siler hem de yeni dalı siler.
git branch -m new_branch
(old_branch'ı new_branch olarak yeniden adlandırın) 2. git commit -m 'msg'
, 3. git push
4. Mhmm, old_branch Github'da görünüyor, Google soru ve ben cevabınıza yönlendirildim 5. git push origin :old_branch
(silindiğini söylüyor) 6. git push origin new_branch
... tamamlar sonra diyor * [new branch] new_branch -> old_branch
. Github'a geri dönün ve old_branch
tekrar ortaya çıkıyor. Github web kullanıcı arayüzünde silersem, "Geri Yükle" seçeneğim var, bu yüzden new_branch'ı itmek sadece geri yükleniyor gibi görünüyor.
Aşağıdaki komutlar benim için çalıştı:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want
Git şube adınızı nasıl değiştirebileceğiniz 3 komut buldum ve bu komut bunu yapmanın daha hızlı yoludur
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
Adım adım ihtiyacınız varsa bu harika makaleyi okuyabilirsiniz
git push --set-upstream
uzak dalı silmeden önce github uygulamasını kullanarak şube adını yerel olarak değiştirirseniz en önemli kısımdır.
Sadece eski dalı kaldırın ve yeni bir dal oluşturun.
Örnek (yalnızca uzak dalı yeniden adlandırma):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Ayrıca muhtemelen yerel şubeyi yeniden adlandırmalı ve nereye / nereye itileceğine ilişkin ayarları değiştirmelisiniz.
git push origin newname:refs/heads/newname
mı? master ve newname aynı taahhüdü işaret etmeyebilir.
1. Yerel şubenizi yeniden adlandırın.
Yeniden adlandırmak istediğiniz şubedeyseniz:
git branch -m new-name
Farklı bir daldaysanız:
git branch -m old-name new-name
2. Eski ad uzak dalını silin ve yeni ad yerel dalını itin.
git push origin :old-name new-name
3. Yeni ad yerel dalı için yukarı akış dalını sıfırlayın.
Şubeye geçin ve ardından:
git push origin -u new-name
Sonuç şu ki
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
git branch -m new-name && git push origin :master new-name
. Başarısız olacak. Bu cevap sadece git ile ilgili ve github değilse, bu soru diğer birkaç sorunun kopyasıdır ve kapatılmalıdır. Gerçekten github ile ilgili ise, cevap github'u kapsamalıdır. Bu cevap yok.
Bunu terminal olmadan yapabilirsiniz, sadece yeni adla bir şube oluşturmanız ve eskisini kaldırmanız yeterlidir. Bunu yapmak için bu gönderiyi kullanabilirsiniz.
Bu makalede, bunu nasıl gerçekten kolay yapacağınız gösterilmektedir.
1. Yerel bir Git dalını yeniden adlandırmak için, adı değiştirmek için Git branch -m komutunu kullanabiliriz:
git branch -m feature1 feature2
2. Yalnızca uzak Git dalını yeniden adlandırma komutunu arıyorsanız, işte bu "
git push -u origin feature2:feature3
Hayır Bunu yapmadan önce daldaki etiketler git tag
.
Başka bir yol, aşağıdaki dosyaları yeniden adlandırmaktır :
.git/refs/head/[branch-name]
için.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
için.git/refs/remotes/[all-remote-names]/new-branch-name
Hem yerel PC'nizde hem de orijin (ler) / uzak sunucularda kafa ve uzaktan kumandaları yeniden adlandır
Şimdiki şube adınız eğik çizgi ( /
) içeriyorsa git şu dizinleri oluşturur:
geçerli şube adı: "awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
şube adı diliyorum: "new-branch-name"
branch
dosyayı şuradan kopyala.git/refs/*/awe/some/
.git/refs/head/
.branch
dosyayı hepsinden kopyala.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
dosyaları yeniden adlandır new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
olarak new-branch-name
(yerel ve uzak!) Olarak yeniden adlandırıldı.Bilgi: Bu yol en iyi olmayabilir, ancak yine de diğer yollarla sorunları olan insanlar için çalışır
Benim durumumda,
yeniden adlandırılan dalı yukarı itmek için ek bir komut gerekiyordu .
git branch --unset-upstream
origin newname
(Yazma kolaylığı için), önce ben git checkout oldname
.
Ardından aşağıdakileri çalıştırın:
git branch -m newname
git push origin :oldname
veya veyagit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Bu ekstra adım sadece şubelerime uzaktan izleme ayarladığım için gerekli olabilir . Bu şekilde kontrol ettiğimde, daha sonra sadece tür yerinegit push
-u
origin oldname
oldname
git push
git push origin oldname
Ben yoksa DEĞİL komutunu kullanın git branch --unset-upstream
önce git push origin newbranch
, git yeniden oluşturur oldbranch
ve kesmeler newbranch
için origin oldbranch
- Niyetim yenerek.
Aşağıdaki komutlar şubeyi yerel olarak yeniden adlandırır, uzak konumdaki eski dalı siler ve yerel dalı yeni uzaktan kumandayı izleyecek şekilde ayarlar:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
Bu kadar basit . Git şubesini yerel olarak ve uzaktan yeniden adlandırmak için bu snippet'i kullanın (test edildi ve cazibe gibi çalışıyor):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Açıklama:
Adımı Yeniden Adlandır:
Git Referansı: -m veya -M seçeneği ile yeniden adlandırılacaktır. Karşılık gelen bir reflog varsa, eşleşecek şekilde yeniden adlandırılır ve şube yeniden adlandırmasını hatırlamak için bir reflog girişi oluşturulur. Varsa, yeniden adlandırmayı zorlamak için -M kullanılmalıdır.
Adım Sil:
Git Referansı: git push origin: experimental Kaynak deposundaki deneysel ile eşleşen bir referans bulun (örn. Refs / heads / experimental) ve silin.
Uzaktan repo Adımında güncelleme (izleme için yukarı referans):
Git reference: --set-upstream Güncel veya başarılı bir şekilde itilen her dal için bağımsız değişken git-pull [1] ve diğer komutlar tarafından kullanılan yukarı akış (izleme) referansını ekleyin. Daha fazla bilgi için bkz. Branch..mer-config [1].
git itme başlangıç noktası
git branch -m eski-şube-adı yeni-şube-adı
git itme başlangıç noktası
Git dalında git dalını çalıştır -m old_name new_name Bu, yerel repo git push orijininizdeki şube adını değiştirir: old_name new_name Bu, değiştirilen adı uzaktan gönderir ve eski dalı siler git push origin -u new_name Yerel dalı izleyecek şekilde ayarlar uzak dal. Bu sorunu çözer