代码管理 - git - 暂存更改

问题

  • 编码时,有时会出现代码写了一半,还没写完,但是需要中断去执行别的操作,例如:切换到另外一个分支去修改时,此时不能提交代码,也不能丢弃代码更改,所以需要能够临时保存下代码修改。

git stash

  • 该命令可以解决以上问题。

使用

  • 帮助信息
xxx@midcompser:~$ git stash -help
usage: git stash list [<options>]
   or: git stash show [<options>] [<stash>]
   or: git stash drop [-q|--quiet] [<stash>]
   or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
   or: git stash branch <branchname> [<stash>]
   or: git stash clear
   or: git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
          [-u|--include-untracked] [-a|--all] [-m|--message <message>]
          [--] [<pathspec>...]]
   or: git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
          [-u|--include-untracked] [-a|--all] [<message>]

  • 保存所有修改
git stash
git stash save 'message...' //保存并增加注释信息
  • 保存部分文件修改
方法1: 
git stash -p //交互模式,选择需要保存的文件

方法2:
git stash push <file1> <file2> <file3> [file4 ...] //新版本才支持

* git stash push include/.
  • 查看保存的列表
git stash list
  • 取出保存的更改
git stash pop
git stash pop --index 
* 恢复指定的进度到工作区。index 从 0 开始
git stash pop stash@{1} 
* 恢复指定的进度到工作区。stash@{1} 是通过git stash list命令得到的 
* 通过git stash pop命令恢复进度后,会删除保存的stash记录。
  • 恢复保存的更改,但是不删除保存的更改
git stash apply [–index] [stash_id]
* 除了不删除恢复的进度之外,其余和git stash pop 命令一样。
  • 删除保存的更改记录
git stash drop [stash_id]
删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
  • 清空保存的更改记录
git stash clear
删除所有存储的进度。

注意点

  • stash会保存暂存区和工作区已加入版本管理的文件修改,但是pop后,之前已加入暂存区的文件不会恢复到暂存区,而是恢复到工作区。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章