Rumah > alat pembangunan > git > Bagaimana untuk membatalkan komit dalam git

Bagaimana untuk membatalkan komit dalam git

青灯夜游
Lepaskan: 2021-11-29 15:20:07
asal
217796 orang telah melayarinya

Cara membatalkan komit dalam git: 1. Gunakan arahan "git rm" untuk membuat asal; 4. Gunakan arahan "git revert" Undo.

Bagaimana untuk membatalkan komit dalam git

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Git 2.30.0, komputer Dell G3.

Kadangkala kami menghantar kod yang salah dan perlu membatalkan rekod komitmen tertentu Berikut ialah beberapa kaedah:

1 Jika komit yang perlu dipadamkan ialah satu atau lebih fail, anda boleh melakukan operasi berikut.

1. Jika fail yang dihantar ke gudang perlu dipadam, anda boleh menggunakan perintah

:

git rm

2 kawasan storan sementara, ruang kerja tempatan Tanpa membuat perubahan, anda boleh:
git rm <file> // 从工作区和暂存区删除某个文件
git commit -m "" // 再次提交到仓库
Salin selepas log masuk

3. Jika anda secara tidak sengaja memadamkan fail dalam ruang kerja, anda boleh menggunakan
git rm --cached <file>
Salin selepas log masuk
untuk menulis ganti fail dalam kawasan storan sementara dengan fail dalam ruang kerja, dengan itu Pemulihan fail yang dipadam secara tidak sengaja:

git checkout

4 Gunakan
git checkout -- <file>
Salin selepas log masuk
untuk memadam fail, dan operasi pemadaman juga akan direkodkan

git rmGunakan

untuk memadam fail, dan hanya fail yang dipadam akan dipadamkan. Ia adalah fail fizikal tempatan dan tidak dialih keluar daripada rekod git.

rm5,

dan

mempunyai fungsi yang serupa, git addgit rm tetapi

hanya boleh merekodkan menambah dan menukar tindakan dan tindakan pemadaman perlu diselesaikan sebelum

. git addgit rm

2 GitHub Membatalkan KomitJika anda perlu memadamkan bukan sahaja fail, tetapi kod bersilang, maka terdapat yang berikut Di sana ialah tiga cara untuk memadamkan komit.

1. git reset

    : Kembali ke komit tertentu.
  • git reset
  • : Pengubahsuaian selepas penyerahan ini akan dikembalikan ke kawasan pementasan.
  • git reset --soft
  • : Tiada pengubahsuaian akan dikekalkan selepas penyerahan ini
  • Tiada rekod semasa melihat ruang kerja. git reset --hardgit status
  • 1) Kod gulung balik

Jika komit yang perlu dipadamkan adalah yang terkini, anda boleh menggunakan perintah

untuk melancarkan semula kod kepada keadaan sebelumnya commit, tetapi ia mesti Buat salinan sandaran kod sedia ada anda, jika tidak, perubahan akan hilang selepas rollback. Operasi khusus adalah seperti berikut:

git reset

2) Pemulihan pemadaman tidak disengajakan
git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
Salin selepas log masuk

Jika anda mendapati anda menyalin commit_id yang salah selepas melancarkan semula kod atau memadam rekod commit secara tidak sengaja, anda juga boleh memulihkannya melalui kod di bawah :

git relog // 复制要恢复操作的前面的 hash 值
git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值
Salin selepas log masuk
Nota: Sebaiknya jangan gunakan
    untuk melancarkan pustaka jauh apabila memadamkan komit tertentu di tengah, kerana apabila orang lain menggunakan
  1. untuk menyerahkan kod kemudian, mereka juga akan memadamkan tempatan mereka sendiri. Membalikkan gudang kepada versi sebelumnya terdedah kepada ralat dan meningkatkan beban kerja yang tidak perlu. git resetgit pull
2. git rebase

    : Gunakan arahan ini apabila kedua-dua cawangan tidak berada pada baris yang sama dan perlu melakukan a operasi gabungan.
  • git rebase
  • 1) Buat asal komit

Jika komit tertentu di tengah perlu dipadamkan, anda boleh menggunakan arahan

Kaedahnya seperti berikut:

git rebase

Cara Ini Selesai.
git log // 查找要删除的前一次提交的 commit_id
git rebase -i commit_id // 将 commit_id 替换成复制的值
进入 Vim 编辑模式,将要删除的 commit 前面的 `pick` 改成 `drop`
保存并退出 Vim
Salin selepas log masuk

2) Selesaikan konflik

Konflik asas semula berkemungkinan besar berlaku apabila arahan ini dilaksanakan, yang boleh diselesaikan dengan kaedah berikut:

git diff // 查看冲突内容
// 手动解决冲突(冲突位置已在文件中标明)
git add <file> 或 git add -A // 添加
git rebase --continue // 继续 rebase
// 若还在 rebase 状态,则重复 2、3、4,直至 rebase 完成出现 applying 字样
git push
Salin selepas log masuk
3. git revert

    : Meninggalkan penyerahan tertentu.
  • git revert Penyerahan sebelumnya masih kekal dalam log git, dan pembatalan ini akan dianggap sebagai penyerahan baharu.
    git revert
  • : digunakan untuk mengendalikan nod gabungan, -m menentukan titik penyerahan tertentu.
  • git revert -m
  • 1) Buat asal penyerahan

Apabila anda ingin membuat asal penyerahan perantaraan, menggunakan

juga merupakan pilihan yang baik:

git revert

2) Buat asal penyerahan nod Gabungan
git log // 查找需要撤销的 commit_id
git revert commit_id  // 撤销这次提交
Salin selepas log masuk

Jika penyerahan ini ialah nod gabungan, anda perlu menambah perintah

:

-m

Pembelajaran yang disyorkan: "
git revert commit_id -m 1 // 第一个提交点
// 手动解决冲突
git add -A
git commit -m ""
git revert commit_id -m 2 // 第二个提交点
// 重复 2,3,4
git push
Salin selepas log masuk
Tutorial Git

"

Atas ialah kandungan terperinci Bagaimana untuk membatalkan komit dalam git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
git
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan