Saya telah mengerjakan sebuah proyek, tetapi sayangnya, saya lupa untuk beralih ke cabang saya, dan karena itu telah bekerja pada master
Bagaimana saya bisa menyalin pekerjaan (3 file) yang saya lakukan di sini dari master, ke cabang saya (dipanggil, misalnya branch123 ) tanpa komit ke master?
stash
menyimpan modifikasi lokal, lalustash apply
membawanya kembali.git reset --hard HEAD
dan Anda kembali ke komit terakhir yang Anda buat ke cabang master Anda.Jawaban yang diterima adalah yang paling teliti, tetapi ada kasus khusus di mana Anda dapat menyederhanakan. Jika file yang telah Anda modifikasi di direktori kerja identik di keduanya
master
danbranch123
Anda dapat melakukannyaTidak perlu menyembunyikan apa pun, karena perilaku default
checkout
adalah TIDAK menimpa file yang dimodifikasi di direktori kerja Anda, sehingga Anda tidak akan kehilangan apa pun. (Ini sebenarnya disebutkan dalam komentar pertama oleh Cascabel)Seperti yang orang lain sebutkan di komentar, jika
branch123
belum ada, Anda bisa melakukannyaBerdasarkan apa yang saya temukan di sini .
sumber
git checkout -b newbranch
master
danbranch123
. Lihat jawaban saya yang diedit.git stash
adalah apa yang kamu butuhkan.penjelasan lengkap dapat ditemukan di Git-Tools-Stashing
sumber
Karena dimungkinkan untuk membuat cabang baru tetapi tidak mungkin untuk checkout cabang yang ada saat memiliki file diperiksa, saya menemukan trik berikut menggunakan cabang sementara untuk bekerja:
Skenario ini berfungsi setidaknya dengan plugin VS 2015 Git tetapi kemungkinan besar akan bekerja dengan alat git apa pun.
EDIT: Saya menemukan bahwa Anda harus melakukan rebase (git rebase --onto) dari temp cabang sebelum melakukan penggabungan. Kalau tidak, perubahan master akan dimasukkan dalam gabungan. Langkah ekstra 3,5 di atas. Lihat lebih lanjut tentang rebase di sini: https://git-scm.com/book/en/v2/Git-Branching-Rebasing
sumber