1>> git 放棄本地修改(即沒 add 也沒 commit)git
git checkout —fliename 放棄全部的修改 git checkout . 緩存
(不要寫成 git checkout branchName 這就成了切換分支了)spa
2>> git 放棄暫存區的修改指針
git reset HEAD filename () 文件只是會撤銷 add 操做 本地修改不會消失作用域
須要繼續使用第一步的操做 git checkout —filenameit
3>> git 放棄已經 commit 的修改class
git reset —hard HEAD^ 回到上一次 commit 的狀態 也能夠 git reset —hard commitIDfile
4>> git 放棄已經 push 的修改 方法
有兩種方法 一種是 reset 一種是 reverttab
git revert HEAD
git revert commitID 與git reset 的區別是
git revert 是提交一個新的版本,將須要 revert 的版本的內容反向修改回去,版本會遞增, 不影響以前提交的內容, 是用一次新的 commit 來回滾以前的 commit, git reset 只是把 HEAD 指針向後移動一下,直接刪除指定的 commit, 因此儘可能使用 revert
下面是一個列表關於使用場景和做用域
git reset 提交層面 在私有分支上舍棄一些沒有提交的更改
git reset 文件層面 將文件從緩存區中移除
git checkout 提交層面 切換分支或查看舊版本
git checkout 文件層面 捨棄工做目錄中的更改
git revert 提交層面 在公共分支上回滾更改
git revert 文件層面 (然而並無)