首頁 開發工具 Git git怎麼取消commit

git怎麼取消commit

Nov 29, 2021 pm 03:15 PM
git

git取消commit的方法:1、利用「git rm」指令撤銷;2、利用「git reset」指令撤銷;3、利用「git rebase」指令撤銷;4、利用「git revert」指令撤銷。

git怎麼取消commit

本教學操作環境:Windows7系統、Git2.30.0版、Dell G3電腦。

有時我們提交了錯誤的程式碼,需要撤銷某次的commit 記錄,下面介紹幾種方法:

一、刪除檔案

如果需要刪除的commit 是一個或多個文件,可以進行以下操作。

1、被提交到倉庫的某個文件需要刪除,可以使用git rm 指令:

git rm <file> // 从工作区和暂存区删除某个文件
git commit -m "" // 再次提交到仓库
登入後複製

2、如果只想從暫存區刪除文件,本機工作區不做出改變,可以:

git rm --cached <file>
登入後複製

3、如果在工作區不小心刪錯了某個文件,可以用git checkout 將暫存區的文件覆蓋工作區的文件,從而把誤刪的文件恢復:

git checkout -- <file>
登入後複製

4、用git rm 刪除文件,同時還會將這個刪除操作記錄下來;

rm 刪除文件,刪除的只是本地物理文件,沒有將其從git 的記錄中剔除。

5、git addgit rm 有相似的功能,

git add 只能記錄新增、改動的動作,刪除的動作需靠git rm 來完成。

二、GitHub 撤銷某次commit

#如果需要刪除的不只是某個文件,而是交錯的程式碼,那麼有以下三種方法可以刪除commit 。

1、git reset

  • git reset :回滾到某次提交。
  • git reset --soft:此次提交之後的修改會被退回到暫存區。
  • git reset --hard:此次提交之後的修改不做任何保留,git status 查看工作區是沒有記錄的。

1)回滾程式碼

如果需要刪除的commit 是最新的,那麼可以透過git reset 指令將程式碼回滾到之前某次提交的狀態,但一定要將現有的程式碼做好備份,否則回滾之後這些變動都會消失。具體操作如下:

git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
登入後複製

2)誤刪恢復

如果回滾程式碼之後發現複製錯了commit_id,或者誤刪了某次commit 記錄,也可以透過下方程式碼恢復:

git relog // 复制要恢复操作的前面的 hash 值
git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值
登入後複製
  1. 注意:刪除中間某次提交時最好不要用git reset 回退遠端函式庫,因為之後其他人提交程式碼時用git pull也會把自己的本地倉庫回退到之前的版本,容易出現錯誤進而增加不必要的工作量。

2、git rebase

  • #git rebase:當兩個分支不在一條線上,需要執行merge 操作時使用該指令。

1)撤銷提交

如果中間的某次commit 需要刪除,可以透過git rebase 指令實現,方法如下:

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

這樣就完成了。

2)解決衝突

該指令執行時極有可能出現reabase 衝突,可以透過以下方法解決:

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

3、git revert

  • git revert:放棄某次提交。
    git revert 先前的提交仍會保留在 git log 中,而此次撤銷會做為一次新的提交。
  • git revert -m:用於對 merge 節點的操作,-m 指定具體某個提交點。

1)撤銷提交

要撤銷中間某次提交時,使用git revert 也是一個很好的選擇:

git log // 查找需要撤销的 commit_id
git revert commit_id  // 撤销这次提交
登入後複製

2)撤銷merge 節點提​​交

如果這次提交是merge 節點的話,則需要加上-m 指令:

git revert commit_id -m 1 // 第一个提交点
// 手动解决冲突
git add -A
git commit -m ""
git revert commit_id -m 2 // 第二个提交点
// 重复 2,3,4
git push
登入後複製

推薦學習:《Git教程

以上是git怎麼取消commit的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

git怎麼更新代碼 git怎麼更新代碼 Apr 17, 2025 pm 04:45 PM

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

git怎麼下載項目到本地 git怎麼下載項目到本地 Apr 17, 2025 pm 04:36 PM

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

git怎麼合併代碼 git怎麼合併代碼 Apr 17, 2025 pm 04:39 PM

Git 代碼合併過程:拉取最新更改以避免衝突。切換到要合併的分支。發起合併,指定要合併的分支。解決合併衝突(如有)。暫存和提交合併,提供提交消息。

git commit怎麼用 git commit怎麼用 Apr 17, 2025 pm 03:57 PM

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

git下載不動怎麼辦 git下載不動怎麼辦 Apr 17, 2025 pm 04:54 PM

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

git怎麼更新本地代碼 git怎麼更新本地代碼 Apr 17, 2025 pm 04:48 PM

如何更新本地 Git 代碼?用 git fetch 從遠程倉庫拉取最新更改。用 git merge origin/&lt;遠程分支名稱&gt; 將遠程變更合併到本地分支。解決因合併產生的衝突。用 git commit -m "Merge branch &lt;遠程分支名稱&gt;" 提交合併更改,應用更新。

如何解決PHP項目中的高效搜索問題? Typesense助你實現! 如何解決PHP項目中的高效搜索問題? Typesense助你實現! Apr 17, 2025 pm 08:15 PM

在開發一個電商網站時,我遇到了一個棘手的問題:如何在大量商品數據中實現高效的搜索功能?傳統的數據庫搜索效率低下,用戶體驗不佳。經過一番研究,我發現了Typesense這個搜索引擎,並通過其官方PHP客戶端typesense/typesense-php解決了這個問題,大大提升了搜索性能。

git怎麼刪除倉庫 git怎麼刪除倉庫 Apr 17, 2025 pm 04:03 PM

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。

See all articles