日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

          
              
          歡迎訪問 生活随笔!

          生活随笔

          當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

          编程问答

          git reset, git checkout, git revert 区别 (译)

          發(fā)布時間:2025/3/8 编程问答 14 豆豆
          生活随笔 收集整理的這篇文章主要介紹了 git reset, git checkout, git revert 区别 (译) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

          博客原文地址: http://blog.mexiqq.com/index.php/archives/3/

          題記:團隊中大多數(shù)成員使用 sourceTree 和 github 兩款 git 工具,然而大家對于圖形化工具提供的 reset,checkout,revert 功能點并不是很了解,甚至于混淆,然后憑借猜測去使用。功夫不負有心人,在嘗試過多次沖突處理或分支開發(fā)的坑后,終于形成了自己的一套使用方式,可喜可賀。然而問題的解決方案的并不是效率最高的,內(nèi)部的執(zhí)行過程我們也不清楚,這對于一個自律的程序藝術家是無法接受的。基于這個問題,翻譯這篇博客,為 git 中高級用戶的 undo 操作提供參考。鼓勵在熟悉命令行操作再通過圖形化工具提高開發(fā)效率。水平有限,釋疑為主,翻譯為輔

          Reset Checkout and Revert

          原文地址:https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting

          git reset, git checkout, git revert 命令是最有用的三條 git 命令。他們可以幫助你撤銷 repo 的一些操作,并且前兩條命令既可以用于 commit 級別,也可以用于 file 級別。

          因為他們很相似,所以很容易混淆。這片文章,我們將比較他們的相同和不同之處。

          閱讀本文前需要了解 git repo 的三大 components,分別是 working directory(代碼倉庫) staged snapshot(快照:add的緩存庫) commit history(commit歷史) ,這將更好的幫助你理解這三條命令。

          commit 級別的操作

          傳遞給 git reset 和 git checkout的參數(shù)會決定命令的作用范圍。當命令并不包括含一個文件路徑時,命令作用于整個 commit。

          Reset:

          在 commit 級別上,git reset 命令移動 HEAD 到當前分支的一個 commit, 這可以用來撤銷當前分支的一些 commit 。

          例如,下面的命令會讓 `hotfix` 分支回退兩個 commits

          git checkout hotfix

          git reset HEAD~2

          先前在 HEAD 之前的兩次 commit 現(xiàn)在處在 HEAD 之后,這意味著他們在下一次 git 提交時被作為垃圾刪掉,換句話說這兩次提交會被拋棄。如下圖所示:

          git reset用于撤銷未被提交到遠端的改動。除了可以移動當前分支的HEAD,你可以通過不同的標記選擇修改 staged snapshot 或者 working directory

          • --soft: staged snapshot 和 working directory 都未被改變 (建議在命令行執(zhí)行后,再輸入 git status 查看狀態(tài))

          • --mixed: staged snapshot 被更新, working directory 未被更改。【這是默認選項】(建議同上)

          • --hard: staged snapshot 和 working directory 都將回退。

          --hard 很危險,它會直接回退你之前所有的修改,使用前,可以事先保存 commit id.

          【這些標記經(jīng)常和HEAD一起使用。例如,git reset --mixed HEAD可撤銷所有緩存改動,但是保留他們在工作目錄下。git reset --hard HEAD可徹底刪除沒有提交的改動。】

          checkout

          到現(xiàn)在為止,你應該已經(jīng)熟悉 commit 級別的 git checkout 了。當你傳送一個 branch name 名字時,你將更換當前的分支.

          git checkout hotfix

          上面的命令會切換 HEAD 到不同的分支,并且更新當前的 working directory 去匹配。因為會覆蓋當前的本地更改,所以更換分支前git強制你徹底放棄或者提交存儲當前的更改。不同于 git reset, git checkout 不會廢棄任何分支或提交。

          你也可以 checkout 到任何一次 commit,通過提供 commit Id 作為參數(shù).

          比如下面的命令。

          git checkout HEAD~2/[commit id]

          這對于 review repo 的某個 version 的代碼很有用。然而,如果再次添加新的提交就無法返回原先的狀態(tài)。因此,你應該在修改前總是創(chuàng)建一個新的分支。

          Revert

          git revert 命令通過創(chuàng)建一次新的 commit 來撤銷一次 commit 所做出的修改。這種撤銷的方式是安全的,因為它并不修改 commitm history, 比如下邊的命令將會查出倒數(shù)第二次(即當前commit的往前一次)提交的修改,并創(chuàng)建一個新的提交,用于撤銷當前提交的上一次 commit。

          git checkout hotfix

          git revert HEAD~2

          如下圖所示:

          File 級別的操作

          git reset 和 git checkout 命令同樣可以接受一個可選的文件路徑作為參數(shù),這樣可以將操作限制在一個單獨的文件中。

          Reset:

          當調(diào)用一個文件路徑時,git reset 命令會更新 staged snapshot 去匹配某次 commit。 下面的命令將會使文件回退一個 commit。

          git reset HEAD~1 [文件](不建議使用)

          【--soft、--mixed、--hard標記此時不起作用,會更新staged snapshot,但不更新working directory】

          Checkout

          git checkout 命令 和 git reset 類似,除了它會更新 working directory, 而不是 staged snapshot

          如下命令將會更新 working directory 去匹配某次 commit

          git checkout HEAD~1 [文件]

          Summary:

          commandsscopecommon user cases
          git resetCommitDiscard commits in a private branch or throw away uncommited changes
          git resetFileUnstage a file
          git checkotCommitswitch between branches or inspect old snapshot
          git checkoutFileDiscard changes in the working directory
          git revertcommitUndo commits in a public branch
          git revertFile不支持

          總結(jié)

          以上是生活随笔為你收集整理的git reset, git checkout, git revert 区别 (译)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

          如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

          主站蜘蛛池模板: 91丨九色丨国产 | 夜色福利视频 | xxx日韩| 国语对白精彩对话 | 欧美男同又粗又长又大 | 亚洲123区| 日本男女激情视频 | 欧美日韩 一区二区三区 | 日韩国产亚洲欧美 | 黄色影音 | 国产h视频在线观看 | 天天爽夜夜爽视频 | 久久精品久久国产 | 日韩性网站 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 欧美一级α片 | 国产性在线 | 国产毛片欧美毛片久久久 | 美国少妇在线观看免费 | 久久久无码精品亚洲国产 | 国产在线超碰 | 国产青草视频在线观看 | 久久久免费在线观看 | 亚洲熟女综合色一区二区三区 | 亚洲欧美一区二区三区四区五区 | 日本美女一区二区三区 | 欧美色图一区二区三区 | 黑人极品videos精品欧美裸 | 影音先锋一区 | 日韩一区二区三区不卡 | 色综合狠狠爱 | 日韩一区二区三区中文字幕 | 三浦理惠子av在线播放 | 日韩精品中文字幕在线 | 久久精品高清 | 特黄色大片| 亚洲v欧美v| 九九视频国产 | av天堂一区 | 成人网色| 成人xx视频 | 中文字幕精品国产 | 香蕉视频黄色 | 一区精品视频在线观看 | 久久久久久一级片 | 国产亚洲天堂网 | 婷婷色九月 | 精品国产乱码久久久久久1区二区 | 欧美自拍在线 | 一级日批片| 久久噜噜噜精品国产亚洲综合 | 久草视频福利在线 | 五月香蕉网 | 国产精品久久国产精品99 | 日本a天堂| 最好看的日本字幕mv视频大全 | 日韩精彩视频在线观看 | 日韩欧美在线视频播放 | 成人在线免费网址 | 免费播放毛片 | 91久久精品夜夜躁日日躁欧美 | www.av麻豆| 樱桃国产成人精品视频 | 肉丝肉足丝袜一区二区三区 | 特级毛片www | 国产精品久久久久999 | 欧美激情视频一区二区三区在线播放 | 看毛片网 | 一本大道久久a久久精二百 琪琪色在线视频 | 先锋av资源在线 | 美女视频在线免费观看 | 日韩一级免费 | 丰满尤物白嫩啪啪少妇 | 无码人妻一区二区三区线 | 欧美精品123 | 少妇脚交调教玩男人的视频 | 91精品国产一区二区三区蜜臀 | 天天色官网 | 伊人久久国产精品 | 天天天干 | 杨幂一区二区三区免费看视频 | 国产成人无码精品久久久久 | 日韩av在线一区二区 | 久久在线视频免费观看 | 日韩午夜免费视频 | 国产在线中文字幕 | 中国女人黄色大片 | 色www国产亚洲阿娇 自拍一区在线 | 亚洲欧美不卡 | 日韩色道| 亚洲综合免费视频 | 成人片在线播放 | 青娱乐国产在线 | 成人小视频免费在线观看 | 草草视频在线 | 亚洲 欧美 变态 另类 综合 | 欧美色图亚洲天堂 | 色老头一区二区三区在线观看 | 国产第一页精品 |