Diğerlerinin yanıtladığı gibi, Git ile kişisel şubelerinizdeki bitmemiş kodu önemsememelisiniz. Ancak, bir sebepten dolayı, tamamlanmamış çalışmanızın ana repoya dokunmasını gerçekten istemiyorsanız, Git'in dağıtılmış doğasını kullanabilirsiniz!
git bundleMerkezi bir depo olmadan değişiklikleri kolayca iletmenize yardımcı olabilecek basit bir araç var . İlk olarak, repoyu klonlayın:
git clone https://github.com/octocat/Spoon-Knife.git working_copy_1
cd working_copy_1
bazı değişiklikler yapın ve geçici bir şubeye gönderin:
git checkout -b tmp_branch
git commit -a -m "temporary changes"
Şimdi, değişiklikleri paketleyin:
git bundle create ../tmp.bundle tmp_branch
Artık yeni makinenize gönderebileceğiniz bir paket dosyanız var. Orada nasıl kullanıyorsunuz? Yeni bir çalışan kopya oluşturalım:
cd ..
git clone https://github.com/octocat/Spoon-Knife.git working_copy_2
cd working_copy_2
paketimize başka bir uzaktan kumanda gibi davranmamız gerekiyor, böylece değişiklikleri ondan alabiliriz
git remote add tmp ../tmp.bundle
git fetch tmp
tüm mesele değişiklikleri bir iz bırakmadan aktarmak olacaktı, geçici taahhüdü kaybetmek için bunları çalışma kopyasına sıkıştırmak isteyeceğiz:
git merge tmp/tmp_branch --squash
ve geriye kalan tek şey geçici uzaktan kumandayı kaldırmaktır:
git remote remove tmp
VİYOLA! Değişiklikler ne şube ne de taahhütten ayrılmadan yeni çalışma kopyasına aktarıldı!
Ama gerçekten - bu süreç oldukça uzun ve hantaldır. Bu Git, SVN değil - kişisel şubenizi merkezi repoya itmemek için hiçbir sebep olmamalı.