sourcetree kullanarak git rebase


83

Git rebase yapmak için SourceTree GUI'yi nasıl kullanacağım konusunda kafam karıştı. "Master" ve "dev" olmak üzere iki dalım var. Görüldüğü gibi iki kol birbirinden ayrıldı. "Dev" dalında komut satırını kullanarak bir geri ödeme yapmak istiyorum, bu şöyle olur:

git checkout dev
git rebase master

görüntü açıklamasını buraya girin

"Dev" e sağ tıklayıp "Mevcut değişiklikleri dev üzerine yeniden başlat" ı seçmeyi beklerdim. Mevcut değişikliklerin "ana üzerinde yeni taahhütler" anlamına geldiğini varsayıyorum. Ancak bu seçeneğin seçilmesinin hiçbir etkisi yok gibi görünüyor. Doğru adımlar ne olabilir?

Yanıtlar:


119

Ancak bu seçeneğin seçilmesinin hiçbir etkisi yok gibi görünüyor.

Evet, çünkü mevcut değişiklikler, mevcut dallardan biridir dev.

Üstüne yeniden başlamak dev, işlemin devolmadığı anlamına gelir.

git checkout dev
git rebase master

Bu şu anlama gelir: mevcut şube dev: üstüne yeniden yüklenecek master.

Yani SourceTree'de, sağ tıklamanız gerekir master( devteslim alınırken ) ve şunları seçmeniz gerekir:

Rebase current changes onto master

Howe , yorumlara şunları ekliyor :

Mevcut " rebase current changes onto [branch]" Adlandırması yanıltıcıdır. Bu iyileştirme tartışmasınaSRCTREE-1578 göz atın .

Bir özellik dalını geliştirme ve başarısızlıkla güncellemeye çalışırken şaşkın bulduktan sonra, " rebase current changes onto $somebranch" etiketli sol bölme bağlam menüsü öğesinin aslında adının önerdiğinin tam tersini yaptığını
fark ettim : mevcut dalı yeniden oluşturuyor $ bir şubenin durumuna;
Başka bir deyişle $somebranch, mevcut şubeye (veya içine) geri döner , tersi değil. (Sağ?)

ontoMevcut metindeki " " edatı yanıltıcıdır; cümlenin nesnesinin ( $somebranchbenim örneğimde) değişiklikleri alacağını ima eder .
Aslında tam tersi gerçekleşecek.
Mevcut şubenin adının olmaması kafa karışıklığına katkıda bulunuyor.

Cümle yapısını iyileştiren ve etkilenen şubenin adını içeren bir yeniden ifade, netlik açısından büyük bir kazanç sağlayacaktır.
Örneğin:

rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch

13
Bağlamda için downvote dan deadman yayınlanmıştır önceki bir cevap hiç SourceTree ele almadan. Olumsuz oy verdim ve eleştirilerimi bir yorumda açıkladım. Görünüşe göre, Deadman yaptığım yapıcı sözleri takdir etmemiş.
VonC

1
Bu ana dalı değiştirecek mi? Geliştirici dalımı ana daldaki en son değişikliklerle güncellemek ve daha sonra geliştirme dalımı ana dalda birleştirmek istiyorum. Açıklanan yol bu görevi yapacak mı?
Gerfried

2
@Gerfried Kabul edildi. Dev basılmadığı sürece, master üzerine yeniden ödeme yapabilirsiniz.
VonC

14
Sourcetree, daha iyi bir açıklama için ifadeyi "En son değişiklikleri Ana'dan Dev'e Yeniden Başlat" olarak değiştirmelidir.
Timo

4
Mevcut adlandırma "[dal] üzerine yeniden taban akımı değişiyor" yanıltıcıdır. Bu iyileştirme tartışmasına göz atın: jira.atlassian.com/browse/SRCTREE-1578 .
Zihao Zhao
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.