2010-01-08 9 views
17

Git ve biraz kafam karıştı. Bir master şubem var ve ikinci bir özellik dalı oluşturdum. Ben taahhüt yoksaGIT: Şubemi başka bir şubeye gitmeden önce işlemem gerekiyor mu?

benim özellik dalında değişiklik yapmak ve daha sonra Usta geçerseniz, benim değişiklikler kaybolur?

Stash nerede devreye giriyor, dalları değiştirmeden önce (ama yapmak istemiyorsan) yapman gereken bir şey mi yoksa bazı değişiklikleri geçici olarak geri almak mı? Eğer ağaç temizlemek sürece

cevap

12

başka şubesine değiştiremezsiniz. Bu, değişikliklerinizi gerçekleştirerek, geri aldığınızda veya saklamak için bunları kaydederek yapılır.

+4

'git checkout' yani çatışmaların şansı varsa değişiklikler her iki dalda da uygulanacaktı). Buna ek olarak, biri birleştirme girişimini 'git checkout --merge 'kullanarak zorlayabilir, ancak bu birleştirme çakışmalarıyla sonuçlanabilir ve bu çakışmaların çözülmesi zor olabilir (bu durum, ön denetim durumuna geri dönmeyi zorlaştırabilir). –

+0

Vay kim oldu bilmiyorum ama -2 downvote için teşekkürler ... Ben bunu bir süre önce de anladım ama yazma sırasında bunu yapmak mümkün değildi hatırlıyorum. Git 1.7 için yeni mi? – Htbaa

2
Muhtemelen bu amaçla zulası kullanmak istemiyorsanız

.

Master ve özellik dalında da aynı anda geliştirmek istiyorsanız, deponuzu klonlamanız ve klonda ve master'da çalışmanızı ve sonra aralarındaki değişiklikleri taşımak için itme ve çekmeyi kullanmanızı öneriyorum. Aralarında sık sık geçiş yapıyorsanız bilgisini değiştirmeden önce

, ben göz atmanız önerilir; çöp kontrolünde yanlış bir şey yok; git bunu daha sonra sıralamak için kolaylaştırır. (Mevcut şube ve yeni dalında aksi aynıdır sürece değişiklikler dosyayla sınırlıdır dalları geçiş yaparken hem sahnelenen ve unstaged değişikliklerin 'ileriye taşıyacak' olacak

+0

işte benim durumum. Birkaç web sitesiyle bir çözümüm var. Projenin farklı versiyonlarında aynı anda çalışmak istiyorum, her biri için farklı çalışma dizinleri kullanmak zorunda kalmak istemiyorum. Bu yüzden, projenin çeşitli sürümleri arasında geçiş yapmanın bir yolunu arıyorum, ancak benim için tüm dosyaları değiştirerek git yönünü değiştirdim, böylece her web sitesine yönlendirilmiş bir IIS kurulumunu kullanabiliyorum, işaret ettiğim tüm ayarlarımı değiştirmek zorunda kalmam. belirli yollar, vb. – BoomTownTech

+1

Not 'stash' önerdiğiniz gibi denetleyerek çalışır. Bu, tıpkı başka herhangi bir yerde olduğu gibi, depoda geçerli bir işlemdir. Bir şube ref referansı * değil * olur, ancak 'stash' ref tarafından sabitlenir. * TARTIŞMA Bkz * bölüm burada: http://www.kernel.org/pub/software/scm/git/docs/git-stash.html – seh

+3

ah, ancak bu zulalamış gerçeği izini kaybetmek kolaydır, Eğer dikkat başka şeylere geçti. Benim düşünceme göre, şubenizin başına geçmek daha güvenli. –