最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年07月08日 10:14:10   作者:代碼無止境  
這篇文章主要給大家介紹了關于Git使用小技巧之回滾與撤銷的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Git具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

日常的開發(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

結束語

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

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

相關文章

  • Web 設計與開發(fā)者必須知道的 15 個站點

    Web 設計與開發(fā)者必須知道的 15 個站點

    今天讀到一篇文章,介紹了15個對 Web 設計與開發(fā)師極端有用的站點,里面有不少也是我們一直在使用的,也許對很多人都有用,翻譯出來以餉同仁。
    2009-08-08
  • vs快捷鍵 用好Ctrl+Enter與Ctrl+Shift+Enter組合鍵讓你的編輯代碼速度快了很多

    vs快捷鍵 用好Ctrl+Enter與Ctrl+Shift+Enter組合鍵讓你的編輯代碼速度快了很多

    使用Ctrl+Enter組合鍵在上方插入一行,使用Ctrl+Shift+Enter組合鍵在下方插入一行
    2011-04-04
  • 使用VSCode 創(chuàng)建一個插件

    使用VSCode 創(chuàng)建一個插件

    相信大家對vscode應該都不陌生,VSCode是微軟出的一款輕量級代碼編輯器,免費而且功能強大,以功能強大、提示友好、不錯的性能和顏值俘獲了大量開發(fā)者的青睞,對JavaScript和NodeJS的支持非常好,自帶很多功能,例如代碼格式化,代碼智能提示補全、Emmet插件等。
    2020-01-01
  • Git 2.27.0詳細安裝步驟詳解

    Git 2.27.0詳細安裝步驟詳解

    這篇文章主要介紹了Git 2.27.0詳細安裝步驟,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 2019最新的Pycharm激活碼(推薦)

    2019最新的Pycharm激活碼(推薦)

    PyCharm 是一款功能強大的 Python 編輯器,具有跨平臺性。這篇文章給大家介紹2019最新的Pycharm激活碼,需要的朋友一起看看吧
    2019-10-10
  • git rebase -i 修改歷史提交的方法

    git rebase -i 修改歷史提交的方法

    這篇文章主要介紹了git rebase -i 修改歷史提交的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 推薦四款可視化工具(解決99%的可視化大屏需求)

    推薦四款可視化工具(解決99%的可視化大屏需求)

    這篇文章主要介紹了推薦四款可視化工具(解決99%的可視化大屏需求),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-04-04
  • vscode代碼格式化和eslint的使用

    vscode代碼格式化和eslint的使用

    這篇文章主要介紹了vscode代碼格式化和eslint的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 算法系列15天速成——第十三天 樹操作【下】

    算法系列15天速成——第十三天 樹操作【下】

    今天說下最后一種樹,大家可否知道,文件壓縮程序里面的核心結構,核心算法是什么?或許你知道,他就運用了赫夫曼樹
    2013-11-11
  • net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解

    net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解

    這篇文章主要介紹了net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

施甸县| 茂名市| 尼玛县| 灌南县| 天镇县| 长顺县| 大埔县| 鹤庆县| 四平市| 林口县| 镇安县| 新余市| 郑州市| 安溪县| 丰台区| 定州市| 利辛县| 当雄县| 都安| 高青县| 保山市| 长白| 遵义市| 天峻县| 汝南县| 南皮县| 格尔木市| 桐庐县| 汝阳县| 上栗县| 惠东县| 唐山市| 拉萨市| 右玉县| 灵丘县| 深圳市| 中山市| 四子王旗| 三江| 江阴市| 夏河县|