成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:說說你對Git Reset 和 Git Revert 的理解?區別?

開源
在當前提交后面,新增一次提交,抵消掉上一次提交導致的所有變化,不會改變過去的歷史,主要是用于安全地取消過去發布的提交.

[[418395]]

本文轉載自微信公眾號「JS每日一題」,作者灰灰 。轉載本文請聯系JS每日一題公眾號。

 一、是什么

git reset

reset用于回退版本,可以遺棄不再使用的提交

執行遺棄時,需要根據影響的范圍而指定不同的參數,可以指定是否復原索引或工作樹內容

git revert

在當前提交后面,新增一次提交,抵消掉上一次提交導致的所有變化,不會改變過去的歷史,主要是用于安全地取消過去發布的提交

二、如何用

git reset

當沒有指定ID的時候,默認使用HEAD,如果指定ID,那么就是基于指向ID去變動暫存區或工作區的內容

  1. // 沒有指定ID, 暫存區的內容會被當前ID版本號的內容覆蓋,工作區不變 
  2. git reset 
  3.  
  4. // 指定ID,暫存區的內容會被指定ID版本號的內容覆蓋,工作區不變 
  5. git reset <ID> 

日志ID可以通過查詢,可以git log進行查詢,如下:

  1. commit a7700083ace1204ccdff9f71631fb34c9913f7c5 (HEAD -> master) 
  2. Author: linguanghui <linguanghui@baidu.com> 
  3. Date:   Tue Aug 17 22:34:40 2021 +0800 
  4.  
  5.     second commit 
  6.  
  7. commit e31118663ce66717edd8a179688a7f3dde5a9393 
  8. Author: linguanghui <linguanghui@baidu.com> 
  9. Date:   Tue Aug 17 22:20:01 2021 +0800 
  10.  
  11.     first commit 

常見命令如下:

  • --mixed(默認):默認的時候,只有暫存區變化
  • --hard參數:如果使用 --hard 參數,那么工作區也會變化
  • --soft:如果使用 --soft 參數,那么暫存區和工作區都不會變化

git revert

跟git reset用法基本一致,git revert 撤銷某次操作,此次操作之前和之后的 commit和history都會保留,并且把這次撤銷,作為一次最新的提交,如下:

 

  1. git revert <commit_id> 

如果撤銷前一個版本,可以通過如下命令:

  1. git revert HEAD 

撤銷前前一次,如下:

  1. git revert HEAD^ 

三、區別

撤銷(revert)被設計為撤銷公開的提交(比如已經push)的安全方式,git reset被設計為重設本地更改

因為兩個命令的目的不同,它們的實現也不一樣:重設完全地移除了一堆更改,而撤銷保留了原來的更改,用一個新的提交來實現撤銷

兩者主要區別如下:

  • git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit
  • git reset 是把HEAD向后移動了一下,而git revert是HEAD繼續前進,只是新的commit的內容和要revert的內容正好相反,能夠抵消要被revert的內容
  • 在回滾這一操作上看,效果差不多。但是在日后繼續 merge 以前的老版本時有區別

git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch時,之前提交合并的代碼仍然存在,導致不能夠重新合并

但是git reset是之間把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應該還會被引入

如果回退分支的代碼以后還需要的情況則使用git revert, 如果分支是提錯了沒用的并且不想讓別人發現這些錯誤代碼,則使用git reset

參考文獻

https://juejin.cn/post/6844903542931587086

https://marklodato.github.io/visual-git-guide/index-zh-cn.html#reset

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2021-08-17 07:15:16

Git RebaseGit Merge面試

2021-08-09 07:47:40

Git面試版本

2022-02-10 09:56:33

git revertgit resetGit

2015-08-20 10:42:17

2021-08-16 08:33:26

git

2020-10-27 07:31:35

GitGit RevertGit Reset

2021-11-25 10:18:42

RESTfulJava互聯網

2020-12-01 08:47:36

Java異常開發

2020-06-12 15:50:56

options前端服務器

2021-08-12 07:49:25

Git 索引HEAD

2021-09-16 07:52:18

算法應用場景

2021-11-08 11:32:01

觀察

2021-10-15 09:53:12

工具

2021-08-11 08:53:23

Git命令面試

2019-05-10 10:50:04

Spring AOPJDK動態代理CGLIB動態代理

2021-09-07 08:33:27

JavaScript TypeScript 函數

2021-11-09 08:51:13

模式命令面試

2021-11-05 07:47:56

代理模式對象

2020-12-04 06:27:04

序列化面試官Java

2021-11-02 22:04:58

模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区精彩视频 | 亚洲欧美在线观看 | 毛片在线看片 | 久在线 | 色婷综合网 | 国产激情视频网站 | 日本成人午夜影院 | 国产美女久久久 | 91免费观看 | 免费艹逼视频 | 亚洲美女视频 | 亚洲精品久久久 | 国产乱码精品一区二区三区五月婷 | 不卡的av在线 | 亚洲在线一区二区 | 中文字幕日韩欧美一区二区三区 | 91免费福利在线 | 中文字幕av亚洲精品一部二部 | 国产一区二区欧美 | 在线亚洲一区 | 中文字幕成人 | 不卡视频一区二区三区 | 成人精品国产免费网站 | 国产精品欧美一区二区三区不卡 | 中文字幕亚洲欧美 | 一区二区三区四区视频 | 九色网址 | 亚洲精品久久久久中文字幕欢迎你 | 91一区二区三区在线观看 | 婷婷开心激情综合五月天 | 久久精品1 | 欧美aaa | 国产女人精品视频 | 亚洲精品在线视频 | 观看av | 午夜影院在线播放 | 国产精品久久久久一区二区三区 | 国产成人精品免高潮在线观看 | 精品日韩欧美一区二区 | 九九久久久久久 | 国产美女精品视频免费观看 |