怎麼撤銷 git commit 提交的程式碼
阿新 • • 發佈:2022-03-29
問題
比如:我在專案裡面添加了一個新的元件 gitTest.java
,
寫完之後,我就提交程式碼:
git add . git commit -m '提交git測試元件'
git reset 命令
git reset 命令用於回退版本,可以指定退回某一次提交的版本。
git reset 命令語法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]
-mixed 為預設,可以不用帶該引數,用於重置暫存區的檔案與上一次的提交(commit)保持一致,工作區檔案內容保持不變。
不刪除工作空間改動程式碼,撤銷 commit,並且撤銷 git add . 操作
git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的
–soft 引數用於回退到某個版本
不刪除工作空間改動程式碼,撤銷 commit,不撤銷 git add .
–hard 引數撤銷工作區中所有未提交的修改內容,將暫存區與工作區都回到上一次版本,並刪除之前的所有資訊提交
刪除工作空間改動程式碼,撤銷 commit,撤銷 git add .
例項:
$ git reset HEAD^ # 回退所有內容到上一個版本 $ git reset HEAD^ hello.php # 回退 hello.php 檔案的版本到上一個版本 $ git reset 052e # 回退到指定版本 $ git reset --soft HEAD~3 # 回退上上上一個版本 $ git reset --hard HEAD~3 # 回退上上上一個版本 $ git reset --hard bae128 # 回退到某個版本回退點之前的所有資訊。 $ git reset --hard origin/master # 將本地的狀態回退到和遠端的一樣
注意:謹慎使用 –hard 引數,它會刪除回退點之前的所有資訊。
HEAD 說明:
• HEAD 表示當前版本
• HEAD^ 上一個版本
• HEAD^^ 上上一個版本
• HEAD^^^ 上上上一個版本
可以使用 ~數字表示
• HEAD~0 表示當前版本
• HEAD~1 上一個版本
• HEAD~2 上上一個版本
• HEAD~3 上上上一個版本
解決
執行完commit後,想撤回commit,怎麼辦?
通過上面的 git reset 命令學習,可以知道:使用下面的命令
# 回退上一個版本,然後需要刪掉程式碼 git reset --hard HEAD~1
執行完我們發現已經回退到了提交前的狀態
可以輸入檢視日誌命令:
git log --oneline -10
拓展
推薦閱讀:Git 工具 - 重置揭密