2012-09-18 20 views
11

(işlem oldukça kolay olması gerektiği gibi bu görünüyor, ama ben şimdiye kadar aramalarda boş geliyorum.)Git - Belirli etikete rebasing

Bir memba gelen bir kod vücuda sahip çeşitli dallarda etiketli çeşitli versiyonları ile kaynak.

Ben etiket "v1.0" dayanıyordu benim "geliştirmek" dalında üzerinde çalışıyorum. o zamandan bu yana pek çok versiyon ortaya çıktı, fakat "v2.0" ilginç olsa da, geliştirme şubemi "v1.5" e geri yüklemek ve orada çalışmaya devam etmek istiyorum (bu geri akışı beslemeyi planlamamış olduğumu varsayalım). Belki sonra tekrar "v2.0" için yeniden başlatacağım.

(Bu amaçla varsayalım "v1.x" ler aynı dal üzerinde tümü etikettir. İlave kredi için biz "v2.0" Başka daldaki bir etikettir varsayabiliriz.)

ben başardı "v1.0" etiketine göre ilk "geliştirme" dalını kolayca oluşturabilir, ancak rebase sadece şubelerle çalışacak gibi görünür. Bir tane de etiketleri kullanarak yeniden üretilemez mi? Değilse, bunu gerçekleştirmenin doğru yolu nedir (belirli bir etikete yeniden yazmakla aynı etkiye sahip olmak için)?

git rebase --onto v1.5 v1.0 develop 

komutunun develop parçası bir kolu olmalıdır, ancak diğer iki İstediğini olabilir:

+0

Bir etiket _to_ rebase. Bunu yapamazsanız, lütfen kullandığınız komutu ekleyin. –

+0

Hmm! Bunu TortoiseGit ile yapıyordum (hangi düzleme etiketlerle rebasing yapma seçeneği sunmuyor - ya da yapıyor mu?) Ve sonra git bash'da denedim ve hiçbir etkisi yoktu ... ama görünüşe göre bir sözdizimi hatası vardı (Ben "git rebase geliştirmek v1.5" yanlış olanı denedim ... Ben sadece "git rebase v1.5" gelişmiş ve dışarı işlenmiş gibi görünüyor. Düzenleme: Aslında, bunu başka bir yerde bulduğum iyi olmayan bir örnek olan bir nedenden ötürü yaptım. – MartyMacGyver

+0

Bence ödeme ve rebase bunu yapmanın standart yoludur. –

cevap

13

aşağıdaki komutu kullanırsınız.

+0

Orijinal olarak sözdizimi bozduğum gibi görünüyor, bu yüzden soruma yol açıyor. Ve bu işlevin tortoisegit'in rebase seçeneğindeki yokluğu bile, eğer mümkün olsa bile beni sorgulamaya itti. Ancak, bu iş parçacığının beklediğimden daha bilgilendirici olduğu kanıtlandı. Teşekkürler! – MartyMacGyver

+0

Followup: Bunu ileri geri ve tekrar tekrar denedim. Bu aslında benim orijinal test birleştirme şubeden şube atası etiketi belirtilemez çünkü, otomatik olarak eklenen bilgi gibi çözüme kavuştuğunu olabilirdi gereksiz birleştirme "çatışmaları" uzatacağını, TortoiseGit (kullanmaktan daha az karmaşık olduğunu kanıtladı komut satırı git, hala kullanışlı bir yazılımdır, ancak görünüşe göre, rebas'ları olabildiğince iyice ele almamaktadır. – MartyMacGyver