git reset 與git revert基礎(chǔ)

基本概念

git倉庫可分為3個部分組成:工作目錄、 緩存區(qū)、 提交歷史


git reset

在提交層面上,reset 將一個分支的末端指向另一個提交。

實例

  1. 新建一個文件夾aa,創(chuàng)建a.md,輸入hello,初始化為git倉庫,依次執(zhí)行添加并提交。


  2. 修改a.md(改為為hello world),添加并提交


  1. 再次修改a.md(改為hello world zdy),添加并提交


  2. 查看版本,發(fā)現(xiàn)有3個提交歷史。


  3. 執(zhí)行 git reset 命令,例如 :git reset HEAD~1(返回到上次提交歷史) 查看狀態(tài),暫存區(qū)發(fā)生改變,查看提交歷史發(fā)現(xiàn)最近一次提交已移除。而工作區(qū)內(nèi)容沒有變化。


  1. git reset -soft – 緩存區(qū)和工作目錄都不會被改變
    git reset -mixed –即默認狀態(tài)下的git reset, 緩存區(qū)和你指定的提交同步,但工作目錄不受影響
    git reset -hard – 緩存區(qū)和工作目錄都同步到你指定的提交

git revert

首先撤銷某一個commit提交,同時生成一個新的commit,從而不破壞歷史版本
Revert 撤銷一個提交的同時會創(chuàng)建一個新的提交。

實例

仍然以上例中文件演示,
1.報錯,此時打開a.md,修改


  1. 查看狀態(tài)


3.執(zhí)行新增了一個提交歷史,而原來那個提交歷史仍然存在。


二者區(qū)別

  1. git revert會產(chǎn)生新的提交,并不會真正刪除history。git reset 則會刪除history。
  2. git revert 只是改變提交層面,而不涉及文件層面的操作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容