怎么撤銷 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 工具 - 重置揭密

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM