Sayangnya ini terjadi pada saya secara teratur juga dan saya menggunakan git stash
jika saya menyadari kesalahan saya sebelumnya git commit
dan menggunakan git cherry-pick
sebaliknya, kedua perintah dijelaskan dengan cukup baik di jawaban lain
Saya ingin menambahkan klarifikasi untuk git checkout targetBranch
: perintah ini hanya akan mempertahankan direktori kerja Anda dan melakukan snapshot jika targetBranch memiliki sejarah yang sama dengan cabang Anda saat ini
Jika Anda belum melakukan perubahan, cukup gunakan checkout git untuk pindah ke cabang baru dan kemudian lakukan secara normal
Pernyataan Amber tidak salah, ketika Anda pindah ke newBranch ,, git checkout -b newBranch
pointer baru dibuat dan menunjuk ke komit yang sama persis dengan cabang Anda saat ini.
Bahkan, jika Anda memiliki cabang lain yang membagikan sejarah dengan cabang Anda saat ini (keduanya sama-sama komit), Anda dapat "memindahkan perubahan Anda" dengangit checkout targetBranch
Namun, biasanya cabang yang berbeda berarti sejarah yang berbeda, dan Git tidak akan memungkinkan Anda untuk beralih di antara cabang-cabang ini dengan direktori kerja yang kotor atau area pementasan. dalam hal ini Anda dapat melakukan git checkout -f targetBranch
(membersihkan dan membuang perubahan) atau git stage
+ git checkout targetBranch
(membersihkan dan menyimpan perubahan), hanya menjalankan git checkout targetBranch
akan memberikan kesalahan:
kesalahan: Perubahan lokal Anda ke file-file berikut akan ditimpa dengan checkout: ... Silakan lakukan perubahan Anda atau simpan sebelum Anda beralih cabang. Batalkan