Saya biasa git init
membuat repo baru, lalu membuat tiga komit. Sekarang saya ingin melakukan rebase untuk kembali dan mengubah komitmen pertama saya, tetapi jika saya melakukannya git rebase -i HEAD~3
mengeluh! Jika saya mencoba hal yang sama dengan HEAD~2
maka itu agak berhasil tetapi hanya memungkinkan saya mengatur ulang dua komitmen terakhir.
Bagaimana saya merujuk ke 'komit sebelum ada komit' atau kembali dan menyisipkan komit kosong?
git
git-rebase
lxs
sumber
sumber
Jawaban:
Cara mudah, dengan git yang cukup baru (ini sudah lama keluar sekarang jadi Anda harus memiliki ini):
Cara mudah lainnya, seperti yang dicatat oleh twalberg dalam sebuah komentar , adalah menggunakan
git checkout --orphan
set up untuk membuat komit root baru, yang mana Anda dapat menyalin komit lama di atasnya. (Ini yangrebase -i --root
akhirnya dilakukan secara internal.)sumber
git rebase -i --root
saya mendapatkan kesalahanerror: cannot 'fixup' without a previous commit
ketika mencobapick
untuk masing-masing. Ubah yang keduapick
menjadisquash
ataufixup
, tulis lembar instruksi, keluar dari editor Anda, dan Git harus melakukan pekerjaan itu.