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 stashgit pullgit 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 dcf7d96a348faa49e892b4f2d67c2b1dff342b50402f567 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。
