git status
可以查看所有的改動:
修改:modified
刪除:deleted
添加:Untracked
git checkout -- file 如果沒有-- 就變成了切換到另外一只分支了
git checkout -f 此時你修改的文件和刪除的文件都會被恢復,但是你新添加的文件不會被刪除
git clean –df 此時該倉庫下所有新添加文件將被清除, 不會對修改和刪除做任何處理
git clean filename –df 此時該新添加文件將被清除, 不會對修改和刪除做任何處理
git clean參數
首先我們需要認清 忽略的文件 和 未被跟蹤的文件。
忽略的文件:.gitignore 中忽略的文件;
未被跟蹤的文件:沒有被忽略,但是還沒 git add 的文件
git clean -f # 刪除:未被跟蹤的文件
git clean –fd # 刪除:未被跟蹤的文件和文件夾
git clean –xfd # 刪除:忽略的文件、未被跟蹤的文件和文件夾
git clean [-xfd] -n-n # 會先打印一些將要刪除的文件,並不執行刪除動作,主要是查看是否有自己需要的不想被刪除
未使用 git add
可以使用 git checkout -- 如果沒有-- 就變成了切換到另外一只分支了 但是不會刪除新建的分支
使用了 git add
可以使用 git reset HEAD file
此命令用來清除 git 對於文件修改的緩存。相當於撤銷 git add 命令所在的工作。在使用本命令后,本地的修改並不會消失,而是回到了如(一)所示的狀態。繼續用(一)中的操作,就可以放棄本地的修改。
已經用 git commit
可以使用 git reset --hard HEAD^ 來回退到上一次commit的狀態。此命令可以用來回退到任意版本:git reset --hard commitid
轉載來自:原文鏈接:https://blog.csdn.net/kikajack/article/details/79846098
因為暫存區的存在,撤銷修改分為幾種情況(通過 git status 查看倉庫狀態時會提示相關撤銷修改的命令):
修改后,文件沒有放入暫存區(即文件一直在工作區):用 git checkout -- 文件名 撤銷工作區的改動(回到跟版本庫一樣的狀態,即回到最近一次 git commit時的狀態,所有改動全部清除)
修改后,文件放入暫存區,且文件沒有再次修改(即文件已經進入暫存區):分兩步:先用 git reset <文件名> 撤銷 git add 操作(此時更改仍留在工作區),再執行 git checkout -- 文件名 清除工作區的改動
修改后,文件放入暫存區,且文件再次修改:分三步:先用 git checkout -- 文件名 撤銷工作區的改動,再用 git reset <文件名> 撤銷 git add 操作(此時更改仍留在工作區),最后執行 git checkout -- 文件名 清除工作區的改動
通過 git checkout -- 文件名 命令可以撤銷文件在工作區的修改。
通過 git reset 文件名 命令可以撤銷指定文件的 git add 操作,即這個文件在暫存區的修改。
通過 git reset 命令可以撤銷之前的所有 git add 操作,即在暫存區的修改。
git checkout -- 文件名 命令中的 -- 表示命令行在 -- 之后沒有更多的選項。這樣的好處是,如果碰巧有一個分支與文件名重名,仍然可以恢復該文件,而不是切換到同名的分支。