欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

準(zhǔn)備

首先呢,我們還是需要準(zhǔn)備一個(gè)git倉庫,并且準(zhǔn)備一個(gè)可以修改的文件,文件名無所謂,我這里就創(chuàng)建了一個(gè)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 "錯(cuò)誤的提交"

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

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

4.我們?cè)谑褂胓it status查看狀態(tài),會(huì)發(fā)現(xiàn)README文件處于一個(gè)被修改的狀態(tài),并且內(nèi)容沒有發(fā)生變化。也就是說git reset會(huì)將本地倉庫的指針知到你指定的分支,但是內(nèi)容不會(huì)丟棄,而是放到了工作區(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參數(shù)即可。其實(shí)git reset有三種回滾方式:

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

git revert

有些情況下我們可能不太希望錯(cuò)誤的提交記錄被完全抹除掉,還是希望它保存在git的提交記錄中,萬一我們撤銷出錯(cuò)了還可以有補(bǔ)救的機(jī)會(huì)。這中情況下我們就需要使用git revert命令來實(shí)現(xiàn)。

1.我們來查看下當(dāng)前git倉庫的提交記錄。

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

 錯(cuò)誤的提交

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

 init

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

git revert 28aef5f811895f7124a3ae0e3b095a37ef9cb299

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

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

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

 Revert "錯(cuò)誤的提交"

 This reverts commit 28aef5f811895f7124a3ae0e3b095a37ef9cb299.

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

 錯(cuò)誤的提交

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

 init

結(jié)束語

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

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 關(guān)于指令重排現(xiàn)象的兩個(gè)階段詳解

    關(guān)于指令重排現(xiàn)象的兩個(gè)階段詳解

    這個(gè)知識(shí)點(diǎn)也是很多人說不清道不明的地方,感覺都知道,說又說不出來。為什么會(huì)這樣呢?因?yàn)檫@幾個(gè)字,很容易被當(dāng)成動(dòng)詞去理解,其實(shí)正確的理解是當(dāng)成名詞,即指令重排現(xiàn)象
    2022-01-01
  • 怎樣寫commit?log記錄及如何提交有哪些約定

    怎樣寫commit?log記錄及如何提交有哪些約定

    這篇文章主要為大家介紹了怎樣寫commit?log記錄以及及如何提交有哪些約定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • ApacheJMeter壓力測(cè)試工具使用安裝教程

    ApacheJMeter壓力測(cè)試工具使用安裝教程

    本文主要介紹了Apache JMeter的安裝使用教程,Apache JMeter是開源軟件,100%純Java應(yīng)用程序,旨在加載測(cè)試功能行為和測(cè)量性能。它最初設(shè)計(jì)用于測(cè)試Web應(yīng)用程序,但后來擴(kuò)展到其他測(cè)試功能
    2021-09-09
  • 人工智能機(jī)器學(xué)習(xí)常用算法總結(jié)及各個(gè)常用算法精確率對(duì)比

    人工智能機(jī)器學(xué)習(xí)常用算法總結(jié)及各個(gè)常用算法精確率對(duì)比

    這篇文章主要介紹了人工智能機(jī)器學(xué)習(xí)常用算法總結(jié)及各個(gè)常用算法精確率對(duì)比,需要的朋友可以參考下
    2020-03-03
  • 判斷Email地址是否正確的幾個(gè)函數(shù)(asp/php/javascript)

    判斷Email地址是否正確的幾個(gè)函數(shù)(asp/php/javascript)

    今天總結(jié)了幾個(gè)判斷Email地址的函數(shù),和大家分享一下
    2010-08-08
  • VsCode的jsconfig配置文件說明詳解

    VsCode的jsconfig配置文件說明詳解

    這篇文章主要介紹了VsCode的jsconfig配置文件說明詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • vscode單擊新文件時(shí)覆蓋舊文件的解決方法

    vscode單擊新文件時(shí)覆蓋舊文件的解決方法

    本文是給大家分享的作者在使用vscoe過程中遇到的一個(gè)小問題的解決方法,就是取消vscode單擊新文件時(shí)覆蓋舊文件,希望對(duì)大家能夠有所幫助
    2020-02-02
  • git stash的正確用法詳解

    git stash的正確用法詳解

    這篇文章主要為大家介紹了git stash的正確用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • VSCode中ESLint插件修復(fù)以及配置教程

    VSCode中ESLint插件修復(fù)以及配置教程

    最近為vsocde配置Eslint出現(xiàn)了許多問題,我解決問題之后,覺得還是把這些坑都寫清楚,方便學(xué)習(xí)前端的初學(xué)者,下面這篇文章主要給大家介紹了關(guān)于VSCode中ESLint插件修復(fù)以及配置教程的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 防止刪庫跑路及高級(jí)代碼投毒技巧

    防止刪庫跑路及高級(jí)代碼投毒技巧

    這篇文章主要為大家介紹了防止刪庫跑路及高級(jí)代碼投毒技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論