Git各種錯誤操作撤銷的方法

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 如果有未提交的文件,用它

執行完效果如下:

可以看到都刪掉了。

總結

出錯不可怕,可怕的是你不知道為什麼出錯以及如何修復錯誤。所謂亡羊補牢,為時未晚。

歡迎關注課程《中小型企業通用自動化運維架構 》

作者:七寸法師

鏈接:imooc.com/article/detai

來源:慕課網

本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作


推薦閱讀:

【官方】手記欄目認證作者招募,長期有效,隨時報名!_慕課手記

有獎徵文006期 | 聊聊面試那些事兒?

Java 分散式優惠券系統後台

ET001 不可不掌握的 Logstash 使用技巧

Junit的新長征-Junit5


推薦閱讀:

開源 | Python基礎入門課程
活見久,皮卡丘居然是一門編程語言?!
兒童編程語言MIT App Inventor和Scratch比較那個好?
C++: static
C語言代碼練習:簡單6個程序

TAG:Git | 編程技巧 | 編程語言 |