git stash
git stash
存储修改的列表,等同于git stash save
,git stash save "message"
,message用来记录本次stash的描述内容
git stash list
查看修改的列表git stash show
用于校验git stash apply
用于重新存储git stash clear
清楚stash里面的内容git pop [--index] [-q|--quiet] [<stash>]
移除单个存储单元.和git stash save
的作用相反.
应用举例:
- 开发到一半,同步远端代码
当你的开发进行到一半,但是代码还不想进行提交 ,然后需要同步去关联远端代码时.如果你本地的代码和远端代码没有冲突时,可以直接通过git pull
解决.但是如果可能发生冲突怎么办.直接git pull
会拒绝覆盖当前的修改.
遇到这种情况,需要先保存本地的代码,进行git pull
,然后再pop出本地代码:
git stash
git pull
git stash pop
注意问题:
- 新增的文件,直接执行stash是不会被存储的
有新添加的文件,需要添加 -a 参数(如,git stash -a 或 git stash save -a “注释”),或先 git add . 然后再使用 git stash 或 git stash save “注释” 来暂存修改。
git reflog
针对丢失的commit,可以通过 git reflog
查看git操作记录,并且恢复想恢复的commit。
dcf7d96 HEAD@{5}: reset: moving to dcf7d96a348faa49e892b4f2d67c2b1dff342b50
402f567 HEAD@{6}: pull origin master: Merge made by the 'recursive' strategy.
eaef723 HEAD@{7}: commit (initial): init project
执行 git reset –hard eaef723
就可以恢复到需要恢复的 commit 了
git reset —mixed
撤销git add
动作,不小心执行了git add .
操作,但是又有不想提交的文件,需要撤销重新add。