git reset 使用及回滾

2021-10-04 16:26:20 字數 1337 閱讀 9576

git reset 使用及回滾

一、git reset 引數

1. --soft  

2.  --mixed  

3.  --hard  

二、 如何回滾檔案

1. 修改完,還未執行git add 

2.使用git add 提交到暫存區,還未commit之前

3.已經git commit,還未git push

4.已經git push  

一、git reset 引數

1. --soft  

僅僅移動當前head指標,不會改變工作區和暫存區的內容  

2.  --mixed  

是reset的預設引數,移動head指標,改變暫存區內容,但不會改變工作區 

3.  --hard  

當前head指標、工作區和暫存區內容全部改變  

那我個人的理解,--soft用處不是很多,當commit之後想撤回commit,但還不想覆蓋工作區內容時,使用--mixed;當想完全回滾時,使用--hard來覆蓋工作區。

二、 如何回滾檔案

1. 修改完,還未執行git add 

git checkout .

使用暫存區的檔案覆蓋工作區,所以執行完git add .之後,再執行該命令是無效的  

git checkout .和git add .是一對反義詞

2.使用git add 提交到暫存區,還未commit之前

git reset  先用head指標覆蓋當前的暫存區內容

git checkout . 再用暫存區內容覆蓋工作區內容

或者使用

git reset --hard 直接使用head覆蓋當前暫存區和工作區

3.已經git commit,還未git push

git reset --hard origin/master

從遠端倉庫把**取回來,然後覆蓋本地倉庫、本地暫存區和工作區  

或者使用

git reset --hard last_commit_id

覆蓋本地倉庫、暫存區和工作區,其中檢視last_commit_id命令為

git log

或者使用

git reset --mixed last_commit_id  

覆蓋本地的暫存區,再執行

git checkout . 覆蓋本地工作區

4.已經git push  

那就沒辦法了

實際經常使用的情況有兩種

1. 修改錯了,完全覆蓋掉,使用

git reset --hard commit_id

2. 錯誤的把大檔案新增到了快取區,使用

git reset

git reset 使用及回滾

目錄 一 git reset 引數 1.soft 2.mixed 3.hard 二 如何回滾檔案 1.修改完,還未執行git add 2.使用git add 提交到暫存區,還未commit之前 3.已經git commit,還未git push 4.已經git push 僅僅移動當前head指標,不...

git reset 記錄回滾

一般的版本回滾都是push完以後發現有錯誤需要回滾,這裡要用到是git reset命令。該命令有3個引數,mixed,soft和hard,下面做簡單區別講解。完成操作後,恢復到了什麼版本也可以用git log來檢視。確認回撤到你要版本以後,push的時候要用上 force引數,比如git push ...

事務回滾與手動回滾

一般我們在開發時,在方法或者類上加了 transactional事務註解,然後會用 try catch 將可能會出問題的 塊包起來,在catch裡面處理捕獲的異常,但是,如果在catch裡面沒有把異常丟擲去,此時事務是不會自動回滾的 比如這種情況 這裡既沒有丟擲異常,也沒有手動回滾,在插入流水表之後...