Yerel olarak bir şube nasıl kaldırılır?


159

Depomda bir master ve bir dev şubem var. Master şubesini bilgisayarımdan kaldırmak istiyorum, böylece yanlışlıkla taahhüt etmiyorum (oldu ..).

Burada şubeleri yerel olarak ve uzaktan nasıl silebileceğime dair sorular var , ancak yalnızca bir şubeyi nasıl yerel olarak sileceğimizi bulamadım.

Bir cevap bunu kullanmak için dedi:

git branch -d local_branch_name

Ama bunu denedim ve şube hala GitHub uygulamasında görünüyor.


Bu komutun çıktısı nedir? Hangi daldasın? Konsolda nasıl görünüyor?
SLaks

@SLaks Sorumda bir tür vardı. Konsolda aslında şubenin silindiğini söylüyor, ancak GitHub uygulamasında (yeniden başlattıktan sonra bile) şube ve kesinleştirme hala görülebilir. ÇıktıDeleted branch master (was e8a8e29).
Nate

Windows için GitHub uzak dalları da gösteriyor
SLaks

@SLaks Peki şubeyi yerel olarak sildikten sonra, GitHub for Windows uygulamasında tıklarsam, yeniden klonlanıyor mu? Kendimi doğrudan ana dalda değişiklik yapabilmek istemiyorum.
Nate

Yanıtlar:


114

Sana ne yapmak istediğini anlıyoruz (yorumlarınıza dayanarak) düşünüyorum: Deponun yerel kopyası sıradan yerel şube ne olmasını istiyorsanız master, ne de uzaktan izleme dalı origin/masterbile depo olsa klonlanmış-github bir yerel bir şube -has masterbunu yok github versiyonundan silindi istiyorum.

Uzaktan izleme dalını yerel olarak silerek bunu yapabilirsiniz, ancak git'inizden yerel deponuzu uzak havuzla senkronize etmesini istediğiniz her seferinde geri dönecektir, çünkü gitiniz gitlerine "hangi şubeleriniz olduğunu" sorar ve "Ben var master" der ki git (yeniden) sizin origin/masteriçin yaratır , böylece deponuzda sahip oldukları şey olur.

Uzaktan izleme dalınızı komut satırı arabirimini kullanarak yerel olarak silmek için:

git branch -d -r origin/master

ama yine, yeniden senkronizasyona geri dönecek. Bunu da yenmek mümkündür ( remote.origin.fetchmanipülasyon kullanarak ), ancak muhtemelen masteryerel olarak yaratmayacak veya değiştirmeyecek kadar disiplinli olursunuz .




17

Orijinal sorunu anlayabildiğim kadarıyla, yerel yöneticiye yanlışlıkla taahhütler eklediniz ve bu değişiklikleri henüz itmediniz. Şimdi değişikliklerinizi iptal etmek istiyorsunuz ve yerel değişikliklerinizi silmeyi ve uzaktaki yeni bir ana dal oluşturmayı umuyorsunuz.

Sadece değişikliklerinizi sıfırlayabilir ve ana sunucuyu uzak sunucudan yeniden yükleyebilirsiniz:

git reset --hard origin/master

13

Windows için Github uygulaması, bir deponun tüm uzak dallarını gösterir. Şube ile yerel olarak sildiyseniz, $ git branch -d [branch_name]uzak şube Github deponuzda hala bulunur ve Windows Github uygulamasından bağımsız olarak görünür.

Şubeyi tamamen (uzaktan da) silmek istiyorsanız, yukarıdaki komutu ile birlikte kullanın $ git push origin :[name_of_your_new_branch]. Uyarı: Bu komut mevcut tüm dalları siler ve kod kaybına neden olabilir. Dikkatli ol, yapmaya çalıştığın şey bu sanmıyorum.

Ancak, yerel şube değişikliklerini her sildiğinizde, uzak şube uygulamada görünmeye devam eder. Değişiklik yapmaya devam etmek istemiyorsanız, sadece görmezden gelin ve tıklamayın, aksi takdirde havuzu klonlayabilirsiniz. Başka sorunuz varsa lütfen bize bildirin.


1

başka bir şubeye geçmeniz ve aynı şeyi denemeniz gerekir.

git branch -d


1
Bunun bir cevap olması mı gerekiyor? Veya bir açıklama qustion? Yoksa basit bir soru mu? Söyleyemediğim kadar kısa. Ayrıntılandırmak ister misiniz?
Yunnosch

0

Etiketlerinize göre, Github'ı kullandığınızı varsayıyorum. Ana dalınız için neden bazı şube koruma kuralları oluşturmuyorsunuz? Bu şekilde üstatlığa zorlansanız bile reddeder.

1) Github'daki repounuzun 'Ayarlar' sekmesine gidin.

2) Sol yan menüden 'Şubeler'i tıklayın.

3) 'Kural ekle'yi tıklayın

4) Şube modeli için 'master' girin.

5) 'Birleştirmeden önce çekme isteği incelemeleri iste' seçeneğini işaretleyin

Aynı şeyi geliştirici dalınız için de tavsiye ederim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.