国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - 詳解git reset 加不加 --hard的區別

詳解git reset 加不加 --hard的區別

2020-08-30 14:06chenpuzhen 編程技術

這篇文章主要介紹了詳解git reset 加不加 --hard的區別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

git reset就是當我們提交了錯誤的內容后進行回退使用的命令。

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

通常我們使用

git reset head就是回退到當前版本。git reset head^回退到上一版本

如我們git add 一個文件

詳解git reset 加不加 --hard的區別

這時我們發現添加了錯誤的內容,此時我們只是做了add 操作,就是將修改了內容添加到了暫存區,還沒有執行commit,所以還沒有生成版本號,當前的版本號對應的內容,還是你add之前的內容,所以我們只需要將代碼回退到當前版本就行。

git reset head ,截圖中也有提示內容 use git reset head <file> to unstage,我的理解就是去除掉添加到暫存區的內容。

執行命令后,我們再看看當前的git 狀態,如圖:

詳解git reset 加不加 --hard的區別

查看狀態,發現和我們修改了工作區的內容,還沒有add時的狀態是一樣的了。

說明git reset head操作只對暫存區起效果,不對工作區的內容起效果。所以我們要想修改掉工作區的內容還得繼續執行命令進行還原。根據上面的截圖提示,git add是添加,因為我們發現了錯誤才回退的,所以肯定不能執行這個了。

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

詳解git reset 加不加 --hard的區別

此時你去看工作的文件修改的地方就會已經沒有了,工作區文件也干凈了,算是徹底把文件還原了。

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

詳解git reset 加不加 --hard的區別

如圖,我已經commit了,還沒有push,push的內容我們先不管,push這個命令其實和提交沒關系,他只是推送到遠程了,如果push了,也就是我們回退了之后,再重新push一下而已,所以請不要糾結push這個操作。他和提交版本其實沒有關系的。

回歸話題。我們已經commit了,說明已經生成了最新的版本號了,此時我們想回退,則肯定是回退到之前的一個版本了,如果你知道前一個版本的版本號,git reset 版本號,這樣就可以了,但是一般我們不會去記版本號的,當然你可以執行git log命令去查到。git為我們提供了一個更簡單的回退上一個版本的方法  git reset head^,此命令專門用于回退到上一個版本,如果你的錯誤路程已經走的很遠了,僅僅回退上一個版本可能也解決不了了,那就需要查找日志,找到對應的版本號進行git reset 版本號進行回退了。我們執行 git reset head^后,再查看狀態,如圖:

詳解git reset 加不加 --hard的區別

這個截圖和只做了add,沒有進行commit的回退后的截圖一致的。唯一的區別就是,

git reset 后面跟的一個是head,一個是head^,這個應該很好理解,因為一個沒有commit,還沒有生成版本號,一個已經commit了,有的新的版本號了。要回退肯定要用之前的版本號了。

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

同樣的,我們先add,不進行commit操作,add后,我們執行 git reset --hard head,如圖:

詳解git reset 加不加 --hard的區別

然后我們執行git status查看狀態,如圖:

詳解git reset 加不加 --hard的區別

注意,這里和沒有--hard是有區別的了啦,有了參數--hard,直接把工作區的內容也修改了,不加--hard的時候只是操作了暫存區,不影響工作區的,--hard一步到位,不加--hard需要分開執行,兩步操作。看上去加了--hard方便好多,但是我不建議大家使用這個,因為這個殺傷力有點強。萬一手殘刪掉了一些自己不想刪的就沒有后悔藥了。所以慎用吧

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

到此這篇關于詳解git reset 加不加 --hard的區別的文章就介紹到這了,更多相關git reset --hard內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/chenpuzhen/article/details/92006378

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av片在线看 | 久久99操 | 波多野吉衣网站 | 精品一区二区久久 | 成人av电影在线 | 欧美高潮| 视频一区二区三区中文字幕 | 中文av字幕| 亚洲激情一区二区三区 | 精品国产91乱码一区二区三区 | 精品一区国产 | 亚洲国产一区二区三区在线播放 | 一级片在线观看 | 亚洲精品久久 | 成人精品视频在线 | 婷婷综合激情 | 欧美成人a | 秋霞av亚洲一区二区三 | 久久国产精品偷 | 在线视频一区二区三区 | 99久久久国产精品 | 成人午夜视频在线播放 | 在线视频 亚洲 | 日韩av成人 | 精品一区电影 | 精品一二区 | 久久成人精品 | 国产成人av综合 | 欧美日韩亚洲一区 | 欧美亚洲自拍偷拍 | 中文字幕在线观看一区二区 | 亚洲精品久久久久久下一站 | 九九人人 | 成人超碰在线 | 亚洲免费一区 | 午夜影院免费 | 国产精品亚洲第一区在线暖暖韩国 | 正在播放国产精品 | 天天色天天射天天操 | 国产玖玖 | 日韩精品一区二区在线观看 |