Kaedah: 1. Gunakan perintah "git commit --amend" untuk mengubah suai satu rekod sejarah 2. Gunakan arahan "git rebase -i specify commit number" untuk mengubah suai berbilang rekod sejarah; git filter- Julat yang diubah suai oleh perintah cawangan --filer" menulis semula sejarah.
Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.
Cara mengubah suai sejarah git
Pinda git pemain junior
Jika anda hanya menyerahkan Kemudian saya mendapati bahawa saya cacat, jadi saya menggunakan git commit --amend untuk mengubah suai komit sebelumnya. Selepas arahan ini dilaksanakan, ia akan mengalih keluar komit terakhir daripada cawangan semasa, memulihkan ruang kerja kepada keadaan tempat ia terakhir disediakan untuk penyerahan (semasa mencampurkan perubahan selepas komit terakhir), dan kemudian memaparkan antara muka vim untuk You go dan ubah suai maklumat komit terakhir. Selepas menyimpan dalam vim, semua pengubahsuaian semasa akan diserahkan dengan maklumat penyerahan baharu.
Arahan ini hanya boleh mengubah suai komit terakhir Satu arahan adalah bersamaan dengan melaksanakan siri tindakan berikut:
$ORIG_HEAD=`git show`#保存当前的这次提交的 commit 号 $git reset --soft HEAD^#回到最后一次提交准备提交前的状态 $...#做一些操作和修改 $git commit -c $ORIG_HEAD#表示用最后一次提交的提交信息来做为提交信息,不过会调出编辑器界面
Pemain perantaraan git rebase
Git commit sebelumnya --amend hanya boleh mengubah suai komit terakhir, tetapi apabila kita berada dalam kemahuan dan cacat sepanjang jalan, arahan ini tidak dapat menyelamatkan kita Pada masa ini, kita perlu menggunakan alat pembunuh git rebase -i Datang dan bantu kami menyemak semula peristiwa lalu yang menyakitkan itu.
Sebenarnya, git rebase -i bukanlah arahan yang khusus digunakan untuk mengubah suai rekod sejarah, tetapi arahan yang membolehkan kami melakukan operasi rebase secara interaktif (iaitu, satu demi satu), tetapi kami boleh menggunakan Perintah ini ialah digunakan untuk mengubah suai sejarah komit.
Kaedah menggunakan arahan ini ialah git rebase -i
Seperti yang ditunjukkan dalam gambar, jika saya menyerahkan tiga perubahan ini dan memasukkan git rebase -i HEAD~3, antara muka berikut akan muncul:
Ini ialah antara muka editor vim ini. Arahan yang boleh digunakan ialah enam arahan dalam ulasan di bawah. Selepas keluar dari halaman di mana anda sedang mengeditnya, git akan melakukan operasi yang sepadan pada penyerahan satu demi satu mengikut skrip ini (bermula dari penyerahan terawal).
Jika anda hanya mahu mengubah suai maklumat komit, tukar semua pilih kepada r, kemudian:wq save, dan kemudian git akan membenarkan anda mengubah suainya satu demi satu bermula dari maklumat komit yang terawal.
Antara perintah yang tinggal, e akan muncul editor vim apabila mengubah suai penyerahan yang sepadan Pada masa ini, penuding HEAD pada penyerahan ini, anda boleh menggunakan git commit --amend untuk membuat pelbagai pengubahsuaian pada penyerahan ini , dan kemudian laksanakan git rebase --teruskan untuk meneruskan operasi seterusnya s akan menggabungkan penyerahan ini dan penyerahan induknya ke dalam satu penyerahan apabila mengubah suai penyerahan yang sepadan dengan s tetapi akan mengabaikan penyerahan semasa . Maklumat, terus menggunakan maklumat yang diserahkan oleh ibu bapa x memerlukan memasukkan arahan selepas x dan kemudian melaksanakannya apabila HEAD menunjuk kepada penyerahan ini. Arahan ini juga boleh digunakan untuk menyusun semula penyerahan dan memisahkan penyerahan.
Cawangan penapis git pembunuh muktamad
Andaikan selepas kami menyerahkan N kali, tiba-tiba kami mendapati bahawa alamat e-mel yang kami serahkan semuanya salah (°°□° )︵ ┻━┻, jika anda menggunakan arahan yang dinyatakan sebelum ini pada masa ini, anda mungkin akan keletihan sebelum perubahan selesai Pada masa ini, kita boleh menggunakan git filter-branch untuk menulis semula cawangan, yang boleh membatch setiap cawangan . Serahkan dan laksanakan operasi pratetap kami
Format penggunaan asas yang digunakan oleh perintah git filter-branch --
Kajian yang disyorkan: "Tutorial Git"
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai sejarah dalam git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!