Open guoshuai93 opened 6 years ago
在开发过程中,我们难免会遇到这样的场景:正在某一个分支开发,突然通知说有 bug 需要紧急修复。那此时我们需要新开一个分支修复 bug ,但本地还有为开发完成的代码,可以可以提交保存开发中的代码,但同样产生了一个无意义的提交。遇到这种情况该怎么办呢?试试 stash (储藏)命令吧。
stash
# 储藏当前工作中的代码 git stash # 添加有意义的描述文字 git stash save “message” # 查看最近一次储藏的改动 git stash show # 查看储藏的列表 git stash list # 重新应用最近一次储藏的改动 git stash apply # 重启较早一次储藏的改动 @stash{对应改动的编号} git stash apply @stash{3} # 重启后在本地的栈上还会有储藏的改动,想要完全移除 git stash drop @stash{3} # 类似于 apply, 不同点是同时会移除栈上储藏的改动 git stash pop
从储存创建一个分支 如果我们做了一些工作,将它留在那了一会,然后继续在储藏所在的分支上工作,在重新应用工作的时候,你可能遇到问题,如果刚刚尝试修改了它,还需要解决合并冲突的问题。其实还可以尝试一个更轻松的方式,运行 git stash branch branchName 创建一个分支,检出储藏工作时所在的提交,然后待开发完毕后扔掉储藏分支。
git stash branch branchName
git stash branch testChanges
像储存已跟踪文件一样储存未跟踪文件 默认情况下,stash 命令只储存已跟踪的文件,如果指定 -u 或者 --include-untracked ,Git 也可以储存未跟踪的文件。
-u
--include-untracked
git stash -u
不要储存已通过 git add 命令添加的东西 当你做了几个改动,并且只想提交其中的一部分,过一会再回来处理剩余的改动,这个命令会很有用。
git add
git stash --keep-index
指定 --patch 标记 如果指定该标记,Git 不会储藏任何改动,但会交互式地提示你哪些改动需要储藏,哪些改动需要保存到工作目录中。
--patch
git stash --patch
在开发过程中,我们难免会遇到这样的场景:正在某一个分支开发,突然通知说有 bug 需要紧急修复。那此时我们需要新开一个分支修复 bug ,但本地还有为开发完成的代码,可以可以提交保存开发中的代码,但同样产生了一个无意义的提交。遇到这种情况该怎么办呢?试试
stash
(储藏)命令吧。常见用法
高级用法
从储存创建一个分支 如果我们做了一些工作,将它留在那了一会,然后继续在储藏所在的分支上工作,在重新应用工作的时候,你可能遇到问题,如果刚刚尝试修改了它,还需要解决合并冲突的问题。其实还可以尝试一个更轻松的方式,运行
git stash branch branchName
创建一个分支,检出储藏工作时所在的提交,然后待开发完毕后扔掉储藏分支。像储存已跟踪文件一样储存未跟踪文件 默认情况下,
stash
命令只储存已跟踪的文件,如果指定-u
或者--include-untracked
,Git 也可以储存未跟踪的文件。不要储存已通过
git add
命令添加的东西 当你做了几个改动,并且只想提交其中的一部分,过一会再回来处理剩余的改动,这个命令会很有用。指定
--patch
标记 如果指定该标记,Git 不会储藏任何改动,但会交互式地提示你哪些改动需要储藏,哪些改动需要保存到工作目录中。