git使用rebase刪除某次提交的問(wèn)題
git刪除某次commit記錄
在Git中,要?jiǎng)h除某次commit記錄有幾種不同的實(shí)現(xiàn)方法:
方法一:使用git rebase命令和~標(biāo)記
該方法適用于刪除最近的幾次commit記錄。
首先,使用以下命令查看你需要?jiǎng)h除的commit的記錄
git log
找到你要?jiǎng)h除的commit的哈希值(commit ID)。
運(yùn)行以下命令來(lái)使用git rebase命令刪除commit記錄(假設(shè)刪除最近的一次commit)。
git rebase -i HEAD~1
這將打開(kāi)一個(gè)交互式的rebase窗口。找到要?jiǎng)h除的commit記錄所在的行,將其前面的pick改為drop。
pick abc1234 commit message 1 drop def5678 commit message 2 (to be deleted)
保存并關(guān)閉文件。
Git將執(zhí)行rebase操作并刪除你在步驟3中指定的commit記錄。
這里出現(xiàn)了一個(gè)問(wèn)題,看一下錯(cuò)誤
$ git rebase -i HEAD~1
interactive rebase in progress; onto 52784b2
Last commands done (2 commands done):
pick abc1234 commit message 1
drop def5678 commit message 2 (to be deleted)
Next commands to do (2 remaining commands):
drop 46b66b5 #1000049091 xx1
pick 2df1056 #1000027181 xxx2
You are currently rebasing branch 'feature/dubhe-pay-platform-2.12.3-bak' on '52784b2'.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git cherry-pick --skip'
Could not apply c600123... #1000046509 門(mén)店標(biāo)記二期需求
大致意思是 有一些提交記錄中,沒(méi)有任何的文件變動(dòng),問(wèn)我們要不要保留這些空(無(wú)文件改動(dòng))的提交,按需選擇即可,我選擇的是
# 跳過(guò)當(dāng)前無(wú)法自動(dòng)合并的提交,并繼續(xù)處理后續(xù)的提交 git cherry-pick --skip
看下暫存區(qū)是否有未添加的文件,如果有,使用以下命令添加到暫存區(qū),并提交到本地倉(cāng)庫(kù)
git add . git commit -m "rebase"
然后告訴git,已經(jīng)處理完rebase了
git rebase --continue
最后強(qiáng)制推送到遠(yuǎn)程倉(cāng)庫(kù)即可, 注意,一定要強(qiáng)制推送,否則白改了
git push origin branch_name -force # 簡(jiǎn)寫(xiě) git push origin branch_name -f
撤銷(xiāo) rebase 修改
如果你在 git rebase 過(guò)程中遇到問(wèn)題并希望中止 rebase,可以使用以下命令:
git rebase --abort
這個(gè)命令會(huì)將你的分支恢復(fù)到 rebase 開(kāi)始之前的狀態(tài),撤銷(xiāo)所有未完成的 rebase 操作。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Git基礎(chǔ)學(xué)習(xí)之tag標(biāo)簽操作詳解
標(biāo)簽對(duì)象(tag?object)?非常類(lèi)似于一個(gè)提交對(duì)象,它包含一個(gè)標(biāo)簽創(chuàng)建者信息、一個(gè)日期、一段注釋信息,以及一個(gè)指針。本文主要介紹了Git標(biāo)簽tag的一些基礎(chǔ)操作,需要的可以參考一下2022-10-10
軟件測(cè)試實(shí)現(xiàn)Finddler的手機(jī)抓包過(guò)程
本文主要簡(jiǎn)單的描述了Finddler的手機(jī)抓包過(guò)程,使用圖文模式詳細(xì)的描述了操作過(guò)程,非常的通俗易懂,可以快速上手跟著本章的描述就可以輕松實(shí)現(xiàn)2021-08-08
VScode?隱藏大量無(wú)用的文件比如在看Linux?kernel或boot時(shí)候
這篇文章主要介紹了VScode?隱藏大量無(wú)用的文件比如在看Linux?kernel或boot時(shí)候,VScode 工程創(chuàng)建先在 Ubuntu 下編譯一下 uboot,然后將編譯后的 uboot 文件夾復(fù)制到 windows 下,并創(chuàng)建VScode 工程,需要的朋友可以參考下2022-10-10
Git遠(yuǎn)程倉(cāng)庫(kù)配置SSH的實(shí)現(xiàn)(以github為例)
本文主要介紹了Git遠(yuǎn)程倉(cāng)庫(kù)配置SSH的實(shí)現(xiàn)(以github為例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
kafka?rabbitMQ及rocketMQ隊(duì)列的消息可靠性保證分析
這篇文章主要介紹了kafka?rabbitMQ及rocketMQ隊(duì)列的消息可靠性保證分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Git中文亂碼終極解決方案(git status / git log通用)
本文介紹了解決Git日志、提交信息、文件名中文亂碼問(wèn)題的方法,包括全局配置、終端設(shè)置、系統(tǒng)修復(fù)和臨時(shí)解決方案,并提供了問(wèn)題自查表和最終驗(yàn)證步驟,需要的朋友可以參考下2026-05-05
Eclipse 格式化代碼時(shí)不換行與自動(dòng)換行的實(shí)現(xiàn)方法
每次用Eclipse自帶的Ctrl+shift+f格式化代碼時(shí),如果原來(lái)的一行代碼大于80列,Eclipse就會(huì)自動(dòng)換為多行,這點(diǎn)個(gè)人感覺(jué)不是很舒服,簡(jiǎn)單試了一下,通過(guò)以下方式可以修改2009-05-05

