日韩性视频-久久久蜜桃-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精产国品一二三 | 欧美激情精品久久久久久 | 午夜精品久久久久久久第一页按摩 | 在线无遮挡 | 亚洲黄色激情 | 2024国产精品视频 | 黄片毛片在线看 | 国产原创av在线 | 欧美乱做爰xxxⅹ久久久 | 成a人片亚洲日本久久 | 国产精品自拍av | 伊人狼人综合 | 中国一级特黄毛片大片 | 中文在线中文资源 | 亚洲精品成人a | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 国产一及毛片 | 久久久久久久国产精品 | 夜夜骑av | 欧美天天射 | 五月天视频网 | 亚洲毛片a| 日本福利片在线观看 | 黄色一级在线 | 好吊色综合 | 日本免费在线一区 | 国产99久久九九精品无码免费 | 色欧美色 | 一区久久 | 婷久久| 久久久久亚洲精品系列色欲 | 一级黄色毛毛片 | 日本免费色| 永久黄色网址 | 看了让人下面流水的视频 | 国产午夜一区 | 吖v在线| 日韩精品电影一区二区 | 91麻豆视频在线观看 | av草逼| 亚洲色图25p | 久久久久久久偷拍 | 国产青青在线 | 国产日韩一级片 | 久草中文在线 | 国精品一区二区三区 | 日韩精品成人在线观看 | 亚洲17p | 国语对白av| 女人扒开腿免费视频app | 国产少妇一区二区 | 在线视频观看免费 | 性——交——性——乱免费的 | 日韩在线专区 | 超碰在线| 久久精品99久久 | 亚洲美女影院 | 九一精品国产 | 夜夜嗨视频 | 亚洲国产精品久久AV | 亚洲老老头同性老头交j | 撕开少妇裙子猛然进入 | 伊人青青久| 网址av| 欧美黄色免费大片 | 欧美色综合天天久久综合精品 | 日韩中文在线视频 | 日韩精品在线免费视频 | 婷婷激情五月 | 日本一本二本三区免费 | 中文字幕在线观看日本 | 日韩中文字幕av在线 | 日韩毛片在线观看 | 欧美视频日韩视频 | 无码少妇一区二区 | 得得的爱在线视频 | 亚洲影视网 | 久久成人免费网站 | 国产精品VideoSex性欧美 | а 天堂 在线 | 国产精品美女自拍视频 | 奶水喷溅虐奶乳奴h文 | 日本精品在线看 | 一个人看的www日本高清视频 | 久久蜜桃av一区二区天堂 | 秋霞欧美一区二区三区视频免费 | 玩偶姐姐在线观看免费 | 色葡萄影院 | 国产做受69 | 欧美大片免费观看网址 | 人妻少妇精品中文字幕av蜜桃 | 熟睡人妻被讨厌的公侵犯 | 人妻一区二区三区 | 亚洲激情在线观看视频 | av黄色国产 | 色婷婷亚洲一区二区三区 | 男女日屁视频 | 国产激情成人 | 国产精品一卡二卡在线观看 |