使用Git的過程中,失誤無法避免,雖然Git很強,但是有些失誤,無法挽回。在這里我介紹一些Git的撤銷命令。
撤銷對文件的修改
如下圖所示的情況,你修改了文件,但是不想保存對文件的修改。
根據具體情況,你可以選擇
執行下面的命令:
git checkout -- <文件名> #撤銷對某個文件的修改 git checkout -- . #撤銷對所有文件的修改
刪除新建的文件
如下圖所示的情況,注意"Untracked files"提示,你新建了文件,但是想刪除掉新建的文件。
根據具體情況,你可以選擇執行下面的命令:
git clean -f #刪除 untracked files git clean -fd #連 untracked 的目錄也一起刪掉 git clean -n #在用上述 git clean前,強烈建議先執行git clean -n 看看會刪掉哪些文件,防止重要文件被誤刪
不過你也可以直接簡單粗暴,手動刪除或者執行window的rm命令,刪除文件,不過執行git rm命令是沒法做到的,必須先add,然后執行git rm -f <文件名>強制刪除文件。。。。
撤銷暫存區文件
如下圖所示的情況,你想撤銷add命令添加到暫存區的文件。
根據具體情況,你可以選擇執行下面的命令:
git reset head <文件名> #撤銷對某個文件的add命令 git reset head . #撤銷所有文件的add命令
撤銷已暫存的文件
你想撤銷commit命令,你可以執行下面的命令:
git log #先執行這條命令查看commit的歷史 git reset --hard <commit_id> #跳到某次commit
撤銷之后,由於本地版本低於線上版本,想要提交代碼,只能強行提交,覆蓋線上,可以使用下面的命令:
git push -f origin 分支名
注意:
- 命令行中的空格
- 其實上面的命令,在Git的命令行窗口中差不多都有提示。。。。。。