Bir dalı birleştirdikten sonra silmeli miyim?


94

Bir dalı birleştirdikten sonra, arşivden siliyor musunuz?
Ancak bu iyi bir uygulama mı değil mi?

Mevcut sürümümü kırmak istemediğimden ve işleri düzene sokmak için onları silmek istediğimden genellikle çok sayıda şube oluşturuyorum.
Ancak, Assembla veya GitHub ile çalışıyorsanız, eski şubelerden gelen birleştirme istekleriniz siteye kaydedilecektir, bu yüzden onları silerseniz, onları getiremeyeceği için bir hata alırsınız ...

Genellikle bunu nasıl başarırsınız?

Yanıtlar:


73

İç içe geçmiş durumda dalları silme hiçbir problem var. Tüm kaydedilmesini hala tarihinin kullanılabilir ve hatta GitHub arayüzünde, hala, örneğin, (göstermek göreceksiniz bu PR ben bu iş parçacığı çatalla ifade eder PR kabul edildikten sonra silinir).


Tarihte tüm kayıtların hala mevcut olduğunu söylediniz. Github.com'da bir projeye bakarsam bunun doğru olduğunu anlarım. Bununla birlikte, Mac için Github masaüstü uygulamasında, birleştirilmiş dal için işlem geçmişini artık göremiyormuşsunuz gibi görünüyor. Yanılıyor muyum?
barış tipi

Git istemcisi kullanmıyorsanız, özellikle de bir GUI kullanmıyorsanız, şubelere sahip olmanın günlüğünüzü iyi anlamak için yardımcı olabileceğini ekleyeceğim. Başka bir deyişle, bakabileceğiniz bir github / gitlab / diğer gui'niz olmadığından, şube adlarını tutmak, geçmişe ek olarak geçmişe başvurmak için basit bir yere sahip olmanızı sağlar - aksi takdirde dal silindiğinde kaybolur. Birisi bu son ifade yanlışsa lütfen bana bildirin.
Raj

@ Raj buna zaten sahipsin, Merge branch fix-foo-barcommit mesajları şeklinde. Deneyin git log --grep="Merge branch", ardından kendi çapınızı bırakın git checkout -b curious-change. Ayrıca, bir dalı silerken, sadece "dal adı → commithash" işaretçisi dışında hiçbir şey kaybolmaz (bu, bir dalın gerçekte ne olduğudur, yerel veya uzak fark etmez).
ulidtko

@ fred-foo Yine de iyi bir uygulama olup olmadığı sorusu yanıtlanmadı. (Aynı soruyu
soruyorum

27

Dallarımı birleştirdikten sonra kesinlikle temizliyorum.

GitLab kullanıyoruz ve işyerinde istekleri birleştiriyoruz, böylece şubeler hakkındaki geçmiş bilgiler orada saklanıyor; Şube listemi karıştırmalarına ihtiyacım yok ve bir iş arkadaşımın çatalına baktığımda, ideal olarak sadece mevcut aktif gelişiminin dallarını görmek istiyorum. Eğer şubelerindeki bazı koda bakmaya çalışıyorsam, üzerinde çalışmaya başladıkları her özelliği veya düzeltmeyi değil, şu anda aktif olan birkaç dala bakabilmek istiyorum.

Yukarıdakiler BitBucket ve GitHub için de geçerlidir.

Bir dal sonradan birleştirmeyi silmemenizin tek nedeni, belirli bir özelliğin nerede bittiğini bilmeniz, ancak birleştirme işlemlerinin (ve git merge --no-ffgerçekten istiyorsanız) bunu alakasız hale getirmenizdir.


3
Görünüşe göre GitHub her zaman -no-ff yapıyor, bu yüzden bu durumlarda bile bunun bir dal olduğu gerçeğini kaybetmeyeceğiz.
joeytwiddle

7
@joeytwiddle: Şubeyi birleştirmek için GitHub'ın kendi arayüzünü kullandığınızı varsayarsak, evet!
Aşera


0

Sadece açıklığa kavuşturmak için, git açısından şube, sadece bir commit ile bağlantıdır . Şubeyi silerek, kaydetme işlemlerini git deposundan silmeyeceksiniz. Elbette, ayrılan işlemeler bir süre sonra git çöp toplayıcı ile temizlenecektir.

Bilginize: Genellikle dalları, bitbucket arabirimi aracılığıyla ana olarak birleştiriyoruz. Orada delete feature branch after mergebayrak koyabilirsiniz .

Çok eski şubelerle uğraşmanız gerekiyorsa, örneğin bu gibi bazı yardımcı programlara göz atabilirsiniz .

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.