濮阳杆衣贸易有限公司

主頁 > 知識庫 > Git使用小技巧之回滾與撤銷詳解

Git使用小技巧之回滾與撤銷詳解

熱門標簽:臨沂ai電銷機器人招商 高德地圖標注常顯 華創(chuàng)e路航彩票銷售點地圖標注 外呼系統(tǒng)號顯示星號怎么看 銀川語音外呼系統(tǒng)中心 suitecrm 地圖標注 揭陽電腦外呼系統(tǒng)公司 鶴壁外呼系統(tǒng)公司 承德地圖標注公司收費

前言

日常的開發(fā),我們難免會創(chuàng)建錯誤的git提交記錄,整個時候git給我們提供了兩個命令來解決這個問題。一個命令是git reset,另一個是git revert。兩者有啥區(qū)別呢?兩者主要的區(qū)別是,git reset命令是回滾某次提交,被回滾的提交將不會出現在提交記錄中,而git revert命令是創(chuàng)建一個新的提交來達到撤銷的目的,被撤銷的提交和撤銷的提交都會出現在提交記錄中。

準備

首先呢,我們還是需要準備一個git倉庫,并且準備一個可以修改的文件,文件名無所謂,我這里就創(chuàng)建了一個README.md文件:

mkdir git-test
cd git-test
git init
touch README.md
git add *
git commit -m "init"

git reset

1.修改README文件。

2.提交這次修改。

git commit "錯誤的提交"

3.假設剛剛的提交是個錯誤的,我們需要回退,這個是個git reset命令就有用武之地了,我們可以使用它回退到指定的提交。

$ git reset e431092f22a85deebf7bd6f4f96d9943530b49bf
Unstaged changes after reset:
M  README.md

4.我們在使用git status查看狀態(tài),會發(fā)現README文件處于一個被修改的狀態(tài),并且內容沒有發(fā)生變化。也就是說git reset會將本地倉庫的指針知到你指定的分支,但是內容不會丟棄,而是放到了工作區(qū),如果你想再次提交還是可以的。

$ git status
On branch master
Changes not staged for commit:
 (use "git add file>..." to update what will be committed)
 (use "git checkout -- file>..." to discard changes in working directory)

  modified: README.md

no changes added to commit (use "git add" and/or "git commit -a")

如果你想直接丟棄掉,可以加上--hard參數即可。其實git reset有三種回滾方式:

git reset --hard 回滾分支>
git reset --soft 回滾分支>
git reset --mixed 回滾方式>
  • --hard回滾分支到當前所在分支之間修改的內容將會被完全丟棄掉。
  • --soft會將修改的內容放到暫存區(qū),你仍然可以使用git commit命令提交。
  • --mixed則是reset的默認參數,也就是你不指定參數的話,會默認使用--mixed回滾,這種回滾方式會將修改的內容放到工作區(qū)。

git revert

有些情況下我們可能不太希望錯誤的提交記錄被完全抹除掉,還是希望它保存在git的提交記錄中,萬一我們撤銷出錯了還可以有補救的機會。這中情況下我們就需要使用git revert命令來實現。

1.我們來查看下當前git倉庫的提交記錄。

$ git log
commit 28aef5f811895f7124a3ae0e3b095a37ef9cb299 (HEAD -> master)
Author: 代碼無止境 gancy.programmer@gmail.com>
Date: Sun Jun 23 18:08:30 2019 +0800

 錯誤的提交

commit e431092f22a85deebf7bd6f4f96d9943530b49bf
Author: 代碼無止境 gancy.programmer@gmail.com>
Date: Sun Jun 23 17:23:44 2019 +0800

 init

2.現在我們需要將這個錯誤的提交撤銷掉,執(zhí)行下面的命令就可以了。

git revert 28aef5f811895f7124a3ae0e3b095a37ef9cb299

在執(zhí)行的過程中會跳出來一個VI編輯界面,讓我們編輯撤銷提交的message信息,默認為Revert "被撤銷提交的message",當然我們可以進行編輯。

3.在使用git log命令查看提交日志,我們會發(fā)現被撤銷的提交和撤銷的提交都出現在提交記錄中,然后你去查看README文件的內容,會發(fā)現已經回滾回去了。

$ git log
commit ef836162c8f4cf75086151e517339789dd937453 (HEAD -> master)
Author: 代碼無止境 gancy.programmer@gmail.com>
Date: Sun Jun 23 18:13:27 2019 +0800

 Revert "錯誤的提交"

 This reverts commit 28aef5f811895f7124a3ae0e3b095a37ef9cb299.

commit 28aef5f811895f7124a3ae0e3b095a37ef9cb299
Author: 代碼無止境 gancy.programmer@gmail.com>
Date: Sun Jun 23 18:08:30 2019 +0800

 錯誤的提交

commit e431092f22a85deebf7bd6f4f96d9943530b49bf
Author: 代碼無止境 gancy.programmer@gmail.com>
Date: Sun Jun 23 17:23:44 2019 +0800

 init

結束語

這篇文章,主要是講了回滾錯誤提交的兩種方式,平時的使用場景還是挺多的,希望對大家能夠有所幫助。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 簡單談談Git中的回滾操作
  • git 刪除分支和回滾的實例詳解
  • Git 撤銷操作、刪除文件和恢復文件
  • Git里多種撤銷操作的最佳方法
  • 基于Git的常用撤銷技巧與解決沖突方法(推薦)

標簽:許昌 忻州 七臺河 汕尾 咸寧 萊蕪 棗莊 三沙

巨人網絡通訊聲明:本文標題《Git使用小技巧之回滾與撤銷詳解》,本文關鍵詞  Git,使用,小,技巧,之回,滾,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Git使用小技巧之回滾與撤銷詳解》相關的同類信息!
  • 本頁收集關于Git使用小技巧之回滾與撤銷詳解的相關信息資訊供網民參考!
  • 推薦文章
    崇信县| 临邑县| 松江区| 景洪市| 中江县| 朝阳区| 理塘县| 会昌县| 张家口市| 都江堰市| 临泉县| 姜堰市| 文山县| 富裕县| 永川市| 苏尼特左旗| 临夏县| 永新县| 安阳市| 汽车| 崇仁县| 肥城市| 麻城市| 仙游县| 射阳县| 漠河县| 拉孜县| 南岸区| 禹州市| 光泽县| 甘南县| 嘉黎县| 平乐县| 滨州市| 镶黄旗| 武威市| 张家界市| 额济纳旗| 叙永县| 盐亭县| 庄浪县|