背景:
在工作中我们常常会有这样一个工作场景,正在新任务开发中突然你的leader过来,某某你去把x.x.x版本的bug给修复一下,需要马上处理。然而手里正在开发的新功能写到一半又不想提交。那么该怎么办呢?
肯定有这种情况:因为当前有文件更改了,需要提交commit保持工作区干净才能切分支。由于情况紧急,只有急忙 commit 上去,commit 信息也随便写了个“暂存代码”或是“…”,于是该分支提交记录就留了一条黑历史。
使用git stash命令解决
stash在英文意思是隐藏。git stash 的作用也是隐藏没完成的代码,防止干扰别人或者新分支的工作。
stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。
如果你学会 stash,就不用那么狼狈了。你只需要:
git stash
改完bug后,在切回dev分支,并恢复刚才的代码:
git stash apply
git stash 相关命令解释及使用
命令名 | 作用 |
---|---|
git stash | 隐藏当前的工作现场, 此时, git status的结果是 clean |
git stash list | 查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id |
git stash apply | 重新显示标识为 id 的隐藏 |
git stash drop | git apply恢复隐藏后, 需要手动删除 list 列表中的记录 |
git stash pop | 恢复最新的进度到工作区 |
git stash pop stash@[stash_id] | 恢复指定的进度到工作区 |
// 保存当前未commit的代码
git stash
// 保存当前未commit的代码并添加备注
git stash save "备注的内容"
// 列出stash的所有记录
git stash list
// 删除stash的所有记录
git stash clear
// 应用最近一次的stash
git stash apply
// 应用最近一次的stash,随后删除该记录
git stash pop
// 删除最近的一次stash
git stash drop
git stash 使用场景
场景一:不小心在不该开发的分支做了改动
例如忘记切换,将代码写错了分支,直接在 master 分支上做改动,这里假设我的分支是dev分支。
// 把本地当前改动暂存起来,此时master分支就恢复到了上次拉取时的状态
git stash
// 切换到需要改动的分支
git checkout dev
// 将改动pop到自己当前的分支
git stash pop
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/64753.html