1. 程式人生 > 其它 >怎麼撤銷 git commit 提交的程式碼

怎麼撤銷 git commit 提交的程式碼

問題

比如:我在專案裡面添加了一個新的元件 gitTest.java

 

 寫完之後,我就提交程式碼:

git add .
git commit -m '提交git測試元件'

  

 

 

git reset 命令

菜鳥教程: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 工具 - 重置揭密