git stash

git stash存储修改的列表,等同于git stash savegit 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出本地代码:

  1. git stash
  2. git pull
  3. 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。

  1. dcf7d96 HEAD@{5}: reset: moving to dcf7d96a348faa49e892b4f2d67c2b1dff342b50
  2. 402f567 HEAD@{6}: pull origin master: Merge made by the 'recursive' strategy.
  3. eaef723 HEAD@{7}: commit (initial): init project

执行 git reset –hard eaef723 就可以恢复到需要恢复的 commit 了

git reset —mixed

撤销git add动作,不小心执行了git add . 操作,但是又有不想提交的文件,需要撤销重新add。