Rumah >alat pembangunan >git >Bagaimana untuk mengubah suai sejarah dalam git

Bagaimana untuk mengubah suai sejarah dalam git

WBOY
WBOYasal
2022-01-14 14:19:279033semak imbas

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.

Bagaimana untuk mengubah suai sejarah dalam git

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 Contohnya, anda boleh menggunakan git rebase -i HEAD~3 untuk mengubah suai penyerahan ini, penyerahan terakhir dan yang sebelumnya. penyerahan sebanyak tiga kali.

Bagaimana untuk mengubah suai sejarah dalam git

Seperti yang ditunjukkan dalam gambar, jika saya menyerahkan tiga perubahan ini dan memasukkan git rebase -i HEAD~3, antara muka berikut akan muncul:

Bagaimana untuk mengubah suai sejarah dalam git

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 -- , penapis yang berbeza akan memberikan input dan output yang berbeza kepada perintah Contohnya, --msg-filter bermaksud mengubah suai maklumat penyerahan, maklumat penyerahan asal dibaca daripada input standard, dan maklumat penyerahan baharu adalah output kepada output standard -filter bermaksud mengubah suai senarai fail, dsb. dsb. Akhirnya, akan ada skop penulisan semula Sebagai contoh, git filter-branch --env-filter 'GIT_AUTHOR_EMAIL=john@example.com export GIT_AUTHOR_EMAIL' HEAD boleh digunakan untuk menulis semula. peti mel. Cuba satu cawangan dan kemudian lakukan operasi pada cawangan yang anda ingin ubah suai

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn