[git] git stash 的使用

  • git stash
    • 添加到暂存区的修改(staged changes)git追踪单但未添加到暂存区的修改(unchangeed changes) 缓存起来, 用于后续恢复当前的工作状态.
    • 记录被缓存寄来后, 当前工作区会被清空. 也就意味着, 如果缓存栈中的记录被直接删除的话, 就“无法恢复”了.
  • git stash save message
    • 给每一次stash加一个message, 用于记录每次的工作版本, 用来替代直接使用git stash
  • git stash list
    • 列出缓存区中保存的记录
  • git stash pop
    • 恢复上一次缓存的工作状态
    • 该命令会把缓存栈(后进先出)中的第一条记录(stash@{0})删除, 并将对应的修改应用到当前的工作目录
  • git stash apply
    • 功能与git stash pop同, 但是git stash apply 不会删除缓存栈中的记录, 因此可以用于多次重复应用
    • 默认情况下恢复的是上一次缓存的记录, 即缓存堆栈中第一条记录(stash@{0}), 可以通过指定名字, 恢复指定记录git stash apply stash@{n}
  • git stash drop stash@{n}
    • 移除缓存栈中指定记录
    • 不加名字时默认是最新的一条记录, 也就是stash@{0}
  • git stash clear
    • 清楚缓存堆栈中所有记录
  • git stash show stash@{n}
    • 查看指定记录中的diff
    • 如果没有指定, 默认是最新的一条记录
    • 最后添加-p, 查看具体的全部diff
  • git stash branch branch_name
    • 当你的缓存区记录和当前的版本有冲突时, 直接使用git stash apply 会出现合并需要解决. 使用git stash branch branch_name 可以直接创建一个新分支, 该分支会恢复当时缓存该记录时的工作状态
  • git stash -u
    • 可以缓存未被git追踪的文件(untracked)
      -git stash -a
    • 缓存所有更改, 包括被忽略的文件(.gitignore)

学习

  1. git-stash用法小结

你可能感兴趣的:(git,git)