Yanıtlar:
İhtiyacınız olan tek şey şu şekilde:
git stash
git checkout branch123
git stash apply
O zaman ana dala dokunmadan kendi dalına geri dönmelisin.
stashyerel değişiklikleri kaydeder, sonra stash applygeri getirir.
git reset --hard HEADve ana dalınıza yaptığınız son işe geri döndünüz.
Kabul edilen cevap en kapsamlı olanıdır, ancak basitleştirebileceğiniz özel bir durum vardır. Eğer çalışma dizininde değiştirilmiş dosyalar hem de aynıysa masterve branch123sadece yapabileceği
git checkout branch123
Herhangi bir şeyi saklamanıza gerek yoktur, çünkü varsayılan davranışı checkoutçalışma dizininizdeki değiştirilmiş dosyaların üzerine DEĞİL yazmaktır, böylece hiçbir şey kaybetmezsiniz. (Bu aslında Cascabel tarafından yapılan yorumlarda belirtilmiştir)
Diğer insanların yorumlarda belirttiği gibi, branch123henüz mevcut değilse,
git checkout -b branch123
Burada bulduğum şeye dayanarak .
git checkout -b newbranch
masterve ile aynı değilse branch123. Düzenlenmiş cevabımı görün.
git stash ihtiyacınız olan şey bu.
tam bir açıklama Git-Tools-Stashing'de bulunabilir
Yeni bir şube oluşturmak mümkün olduğundan, ancak dosyaları teslim alırken mevcut bir şubeyi kontrol etmek mümkün olmadığından, çalışmak için geçici bir şube kullanarak aşağıdaki numarayı buldum:
Bu senaryo en azından VS 2015 Git eklentisi ile çalışır, ancak büyük olasılıkla herhangi bir git aracıyla çalışır.
EDIT: Birleştirme işleminden önce geçici şube bir rebase (git rebase --onto) yapmak zorunda olduğunu öğrendim. Aksi takdirde, master'daki değişiklikler birleştirmeye dahil edilir. Ekstra 3.5 adım yukarıda. Rebase hakkında daha fazla bilgiye buradan ulaşabilirsiniz: https://git-scm.com/book/en/v2/Git-Branching-Rebasing