亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解git reset 加不加 --hard的區(qū)別

 更新時(shí)間:2020年08月03日 11:26:28   作者:chenpuzhen  
這篇文章主要介紹了詳解git reset 加不加 --hard的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

通常我們提交代碼一般都是 git add ,git commit -m,   git push的這么個(gè)流程。添加到暫存區(qū),提交到git庫生成版本號,push到遠(yuǎn)程倉庫以供他人可以使用。這是一個(gè)完整的且非常順利的流程。但是往往實(shí)際開發(fā)中并不是這么順利,總會出現(xiàn)這樣或那樣的問題。

git reset就是當(dāng)我們提交了錯(cuò)誤的內(nèi)容后進(jìn)行回退使用的命令。

git reset 版本號,就是回退到該版本號上。

通常我們使用

git reset HEAD就是回退到當(dāng)前版本。git reset HEAD^回退到上一版本

如我們git add 一個(gè)文件

這時(shí)我們發(fā)現(xiàn)添加了錯(cuò)誤的內(nèi)容,此時(shí)我們只是做了add 操作,就是將修改了內(nèi)容添加到了暫存區(qū),還沒有執(zhí)行commit,所以還沒有生成版本號,當(dāng)前的版本號對應(yīng)的內(nèi)容,還是你add之前的內(nèi)容,所以我們只需要將代碼回退到當(dāng)前版本就行。

git reset HEAD ,截圖中也有提示內(nèi)容 use git reset HEAD <file> to unstage,我的理解就是去除掉添加到暫存區(qū)的內(nèi)容。

執(zhí)行命令后,我們再看看當(dāng)前的git 狀態(tài),如圖:

查看狀態(tài),發(fā)現(xiàn)和我們修改了工作區(qū)的內(nèi)容,還沒有add時(shí)的狀態(tài)是一樣的了。

說明git reset HEAD操作只對暫存區(qū)起效果,不對工作區(qū)的內(nèi)容起效果。所以我們要想修改掉工作區(qū)的內(nèi)容還得繼續(xù)執(zhí)行命令進(jìn)行還原。根據(jù)上面的截圖提示,git add是添加,因?yàn)槲覀儼l(fā)現(xiàn)了錯(cuò)誤才回退的,所以肯定不能執(zhí)行這個(gè)了。

還有個(gè)命令提示:git checkout --<file> to discard changes in working directory這個(gè)意思就是下載某某文件,丟棄掉該文件在工作區(qū)的改變內(nèi)容。姑且就這么翻譯吧。就是把文件還原了,工作區(qū)的修改也沒了。我們執(zhí)行該命令查看狀態(tài),如圖:

此時(shí)你去看工作的文件修改的地方就會已經(jīng)沒有了,工作區(qū)文件也干凈了,算是徹底把文件還原了。

以上的場景是add后還沒有commit的,下面我們看一下已經(jīng)add并且commit之后的該如何

如圖,我已經(jīng)commit了,還沒有push,push的內(nèi)容我們先不管,push這個(gè)命令其實(shí)和提交沒關(guān)系,他只是推送到遠(yuǎn)程了,如果push了,也就是我們回退了之后,再重新push一下而已,所以請不要糾結(jié)push這個(gè)操作。他和提交版本其實(shí)沒有關(guān)系的。

回歸話題。我們已經(jīng)commit了,說明已經(jīng)生成了最新的版本號了,此時(shí)我們想回退,則肯定是回退到之前的一個(gè)版本了,如果你知道前一個(gè)版本的版本號,git reset 版本號,這樣就可以了,但是一般我們不會去記版本號的,當(dāng)然你可以執(zhí)行g(shù)it log命令去查到。git為我們提供了一個(gè)更簡單的回退上一個(gè)版本的方法  git reset HEAD^,此命令專門用于回退到上一個(gè)版本,如果你的錯(cuò)誤路程已經(jīng)走的很遠(yuǎn)了,僅僅回退上一個(gè)版本可能也解決不了了,那就需要查找日志,找到對應(yīng)的版本號進(jìn)行g(shù)it reset 版本號進(jìn)行回退了。我們執(zhí)行 git reset HEAD^后,再查看狀態(tài),如圖:

這個(gè)截圖和只做了add,沒有進(jìn)行commit的回退后的截圖一致的。唯一的區(qū)別就是,

git reset 后面跟的一個(gè)是HEAD,一個(gè)是HEAD^,這個(gè)應(yīng)該很好理解,因?yàn)橐粋€(gè)沒有commit,還沒有生成版本號,一個(gè)已經(jīng)commit了,有的新的版本號了。要回退肯定要用之前的版本號了。

本來想說git reset --hard 和沒有--hard的區(qū)別的,結(jié)果扯了這么多沒用的,唉希望沒有繞暈吧。后面我們說明一下--hard的作用

同樣的,我們先add,不進(jìn)行commit操作,add后,我們執(zhí)行 git reset --hard HEAD,如圖:

然后我們執(zhí)行g(shù)it status查看狀態(tài),如圖:

注意,這里和沒有--hard是有區(qū)別的了啦,有了參數(shù)--hard,直接把工作區(qū)的內(nèi)容也修改了,不加--hard的時(shí)候只是操作了暫存區(qū),不影響工作區(qū)的,--hard一步到位,不加--hard需要分開執(zhí)行,兩步操作??瓷先ゼ恿?-hard方便好多,但是我不建議大家使用這個(gè),因?yàn)檫@個(gè)殺傷力有點(diǎn)強(qiáng)。萬一手殘刪掉了一些自己不想刪的就沒有后悔藥了。所以慎用吧

加了--hard的,有沒有commit的是沒有區(qū)分的,這里不做截圖了。大家可以自己嘗試。

到此這篇關(guān)于詳解git reset 加不加 --hard的區(qū)別的文章就介紹到這了,更多相關(guān)git reset --hard內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析scratch3.0二次開發(fā)之scratch-blocks免編譯修改問題

    解析scratch3.0二次開發(fā)之scratch-blocks免編譯修改問題

    大家在使用scratch-blocks編譯時(shí)會遇到scratch-gui依賴的scratch-blocks模塊在安裝的時(shí)候編譯會報(bào)錯(cuò),針對這個(gè)問題我們該怎么解決呢,下面小編給大家?guī)砹藄cratch3.0二次開發(fā)之scratch-blocks免編譯修改方法,感興趣的朋友一起看看吧
    2021-08-08
  • 解決SecureCRT通過SSH連接Ubuntu時(shí)vi命令有多余的m的問題

    解決SecureCRT通過SSH連接Ubuntu時(shí)vi命令有多余的m的問題

    小編遇到這樣一個(gè)問題用vi命令來編輯文件的時(shí)候,在開頭和結(jié)尾有多余的字母出現(xiàn):在開頭會有多余的“m”出現(xiàn),結(jié)尾有多余的“2m”,這篇文章主要介紹了解決SecureCRT通過SSH連接Ubuntu時(shí)vi命令有多余的m的問題,需要的朋友可以參考下
    2022-09-09
  • 在 WordPress 的頁眉(header)和頁腳(footer)添加代碼方法

    在 WordPress 的頁眉(header)和頁腳(footer)添加代碼方法

    這篇文章主要介紹了在 WordPress 的頁眉(header)和頁腳(footer)添加代碼方法
    2021-09-09
  • git rebase 成功之后撤銷的操作方法

    git rebase 成功之后撤銷的操作方法

    這篇文章主要介紹了git rebase 成功之后如何撤銷,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 低版本VS項(xiàng)目在VS2019無法正常編譯的問題

    低版本VS項(xiàng)目在VS2019無法正常編譯的問題

    這篇文章主要介紹了低版本VS項(xiàng)目在VS2019無法正常編譯的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Git如何實(shí)現(xiàn)撤銷提交(命令行+IDEA)

    Git如何實(shí)現(xiàn)撤銷提交(命令行+IDEA)

    這篇文章主要介紹了Git如何實(shí)現(xiàn)撤銷提交(命令行+IDEA)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • IDEA+Git+Gitlab使用詳細(xì)教程

    IDEA+Git+Gitlab使用詳細(xì)教程

    這篇文章主要介紹了IDEA+Git+Gitlab使用詳細(xì)教程,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Git ssh 配置及使用方法

    Git ssh 配置及使用方法

    這篇文章主要介紹了Git ssh 配置及使用方法,需要的朋友可以參考下
    2017-10-10
  • TCP窗口被填滿問題的排查實(shí)踐

    TCP窗口被填滿問題的排查實(shí)踐

    這篇文章主要為大家介紹了TCP窗口被填滿的問題排查實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步,早日升職加薪
    2022-01-01
  • 怎樣寫commit?log記錄及如何提交有哪些約定

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

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

最新評論