切換到指定分支,這裏以master爲例,下面的操做都是在master 分支上操做html
git checkout masterjava
介紹 :撤銷commit history 中的內容git
雖然在調用時加上 --hard選項能夠令git reset成爲一個危險的命令(譯註:可能致使工做目錄中全部當前進度丟失!),但本例中工做目錄內的文件並不會被修改。不加選項地調用git reset並不危險——它只會修改暫存區域github
注:能夠用這個操做來 刪除遠程倉庫的最近一次錯誤提交 示例操做:spring
git add . git commit -m "提交1" #push完成,遠程倉庫 commit history已經有記錄了 git push #刪除最近一次的commit 操做,這個操做是在本地的,將git HEAD 指針定位到上次提交之前 git reset HEAD~1 #強制reset 的操做,在遠程倉庫中同步,達到刪除錯誤push 的目的 git push --force
<img src="https://ws3.sinaimg.cn/large/005AQjvJly1fvenbiduw4j30sl0g7mz2.jpg" />緩存
<img src="https://wx4.sinaimg.cn/large/005AQjvJly1fvendoehaaj30ti0hl0uq.jpg" />bash
示例操做:app
git add . git add . #刪除緩衝區add提交,工做空間不變 git reset --mixed HEAD
注:能夠在執行git reset --mixed HEAD
先後調用 git status
查看狀態,方便對比ide
示例操做:工具
git add . git add . git commit -m "工做信息" #刪除 (緩衝區add提交) 、(commit history 提交)、(工做空間) git reset --hard HEAD
注:能夠在shift+alt+k
在執行先後,查看commit history
示例:
git add . git add . git commit -m "工做信息" #只是刪除 (緩衝區add提交) git reset --hard HEAD
注:能夠在shift+alt+k
在執行先後,查看commit history
<img src="https://ws1.sinaimg.cn/large/005AQjvJly1fveohiumbsj30sw0h3dhu.jpg"/>
默認是從緩存(Stage)中checkout文件
#提交 已經修改過的User.java git add src/com/uu/model/User.java #從緩存中檢出User.java, 複寫工做空間的User.java git checkout -- src/com/uu/model/User.java
git add src/com/uu/model/User.java git commit -m "工做信息" #從master 遊標中檢出 User.java git checkout -f HEAD -- src/com/uu/model/User.java
切換分支
適用場景: 在master分支修改了東西,但沒commit(也不想commit,可能沒修改好),此時領導讓你修改two分支上的bug;切換分支check out 必需要commit ,不然會丟失更改; 此時更改的作法是使用stash.
#查詢主分支狀態,暫存修改 git status git stash #切換到two分支 git checkout two # 修改bug 略過,切換回主分支 git checkout master # 查看暫存區 git stash list #將暫存apply到主分支 git stash apply stash@{0} #刪除暫存 git stash drop stash@\{0\}
注:也能夠使用:git stash pop
,apply暫存後,自動刪除
Git分支高級管理[四] <br/> 4.1 圖解 Git 命令<br/> git 經常使用命令(含刪除文件) git-book