Jika Anda belum membuat komitmen, hanya (1: cabang) dan (3: checkout) sudah cukup.
Atau, dalam satu perintah:git checkout -b newBranch
Seperti yang disebutkan di git reset
halaman manual :
$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
- Anda telah membuat beberapa komitmen, tetapi sadari mereka terlalu dini untuk berada di
master
cabang " ". Anda ingin melanjutkan memolesnya di cabang topik, jadi buat " topic/wip
" cabang dari arus HEAD
.
- Putar ulang
master
cabang untuk menyingkirkan ketiga komitmen tersebut.
- Beralih ke
topic/wip
cabang " " dan terus bekerja.
Catatan: karena efek "destruktif" dari sebuah git reset --hard
perintah (perintah ini mengatur ulang indeks dan pohon kerja. Setiap perubahan pada file yang dilacak di pohon kerja sejak <commit>
dibuang), saya lebih suka menggunakan:
$ git reset --soft HEAD~3 # (2)
Ini akan memastikan saya tidak kehilangan file pribadi apa pun (tidak ditambahkan ke indeks).
The --soft
pilihan untuk tidak akan menyentuh file indeks maupun pohon bekerja sama sekali (tapi me-reset kepala untuk <commit>
, seperti semua mode lakukan).
Dengan Git 2.23+ , perintah barugit switch
akan membuat cabang dalam satu baris (dengan jenis yang sama reset --hard
, jadi waspadalah terhadap efeknya):
git switch -f -c topic/wip HEAD~3