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裡面沒有把異常丟擲去,此時事務是不會自動回滾的 比如這種情況 這裡既沒有丟擲異常,也沒有手動回滾,在插入流水表之後...