Git各種錯誤操作撤銷的方法
來自專欄猿論33 人贊了文章
概述
- 在平時工作中使用git難免會提交一些錯誤的文件到git庫里,這時候,撤銷吧,怕把正確的文件刪除了,不撤銷重新改又很麻煩,下面,我就從提交的三個階段,來講解如何撤銷錯誤的操作。
Git Add了一個錯誤文件
解決方法
- 這種情況一般發生在新創建的項目,執行命令:git add .
命令執行完後發現增加了錯誤的文件,比如Pycham自動生成的.idea文件夾。比如下圖:
這時候,我想撤銷add .idea這個操作,可以這麼做:
git reset #撤銷指定的文件git reset #撤銷所有的文件
執行完這個命令後,效果如下:
可以看到.idea這個目錄變成了Untracked了。完美解決。
如果你在執行的時候遇到如下的錯誤:fatal: Failed to resolve HEAD as a valid ref.
如果遇到這個錯誤,就說明你的本地git倉庫從來沒有執行過git commit操作,導致HEAD指針不存在。這時候你可以通過如下的命令撤銷操作:
git rm --cached . #刪除文件git rm -r --cached . #刪除文件和目錄
如何避免
- .gitignore: 把不需要提交的文件增加到這個文件
- git add : 增加指定的文件,少用點號
Git Commit了一個錯誤文件
舉例
我現在有個文件的狀態如下:
執行git diff blog-test.py後結果如下:
可以看到我增加了一行,現在把文件提交到本地倉庫:
可以看到,本地以及沒有需要提交的文件了。這時候,我發現,這個修改是錯誤的,我需要撤銷這次commit,我該怎麼做了?
只撤銷commit操作,保留文件
執行命令如下:
git reset HEAD~1
執行完效果如下:
可以看到,commit被撤銷了,但是修改的部分還保留著。完美解決。不信看git log
撤銷commit操作,刪除變化
執行命令如下:
git reset --hard HEAD~1
執行完後效果如下:
可以看到,我增加的那一行已經沒有了,git log中也沒有了那次的提交記錄:
完美
如何避免
- git status: 查看是否有不需要的文件被add進來
- git diff: 查看文件的變化部分,是否是想提交的
查看更多
Git如何取消最新一次的commit
如何刪除分支
好,現在有個很嚴重的問題,我的分支里代碼不用了,現在要刪除,怎麼整。
分支沒有push到遠程
刪除本地的分支很簡單:
git branch -d branch_name
舉例截圖如下:
分支已經push到遠程
我現在本地和遠程都有一個test分支,如下圖:
執行如下的命令刪除本地和遠程的test分支:
git push origin --delete testgit checkout mastergit branch -d test#git branch -D test 如果有未提交的文件,用它
執行完效果如下:
可以看到都刪掉了。
總結
出錯不可怕,可怕的是你不知道為什麼出錯以及如何修復錯誤。所謂亡羊補牢,為時未晚。
歡迎關注課程《中小型企業通用自動化運維架構 》
作者:七寸法師
鏈接:http://www.imooc.com/article/details/id/41885#
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作
推薦閱讀:
【官方】手記欄目認證作者招募,長期有效,隨時報名!_慕課手記
有獎徵文006期 | 聊聊面試那些事兒?
Java 分散式優惠券系統後台
ET001 不可不掌握的 Logstash 使用技巧
Junit的新長征-Junit5
推薦閱讀:
※開源 | Python基礎入門課程
※活見久,皮卡丘居然是一門編程語言?!
※兒童編程語言MIT App Inventor和Scratch比較那個好?
※C++: static
※C語言代碼練習:簡單6個程序