git stash
来源:互联网 发布:seo前沿者 编辑:程序博客网 时间:2024/05/22 06:38
首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
关于Git Stash的详细解释,适用场合,这里做一个说明:
使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的。
命令详解
[]方括号中内容为可选,[<stash>]里面的stash代表进度的编号形如:stash@{0}, <>尖括号内的必填
git stash 对当前的暂存区和工作区状态进行保存。
git stash list 列出所有保存的进度列表。
git stash pop [--index] [<stash>] 恢复工作进度
--index 参数:不仅恢复工作区,还恢复暂存区<stash> 指定恢复某一个具体进度。如果没有这个参数,默认恢复最新进度如:以下命令恢复编号为0的进度的工作区和暂存区# git stash pop --index stash@{0}
git stash [save message] [-k|--no-keep-index] [--patch]
这是git stash保存进度的完整命令形式使用save可以对进度添加备注# git stash save "这是保存的进度"现在执行list,会发现后面会出现自定义的被合租# git stash liststash@{0}: On master: 这是保存的进度-k和--no-keep-index指定保存进度后,是否重置暂存区--patch 会显示工作区和HEAD的差异,通过编辑差异文件,排除不需要保存的内容。和git add -p命令类似
git stash apply [--index] [<stash>] 不删除已恢复的进度,其他同git stash pop
git stash drop [<stash>] 删除某一个进度,默认删除最新进度
git stash clear 删除所有进度
git stash branch <branchname> <stash> 基于进度创建分支
再讲一下自己最近项目中遇到的一个问题,本来我们的线下开发分支叫做develop,我在这上面在开发,然后leader说现在加了一个分支叫做pre_dev,这个分支是用来进行code review的,所以要求开发人员以后都要在这个分支上面进行开发,然后再发merge_request,给leader进行code review,但是我现在在的分支是develop分支做的修改,如何保存这些修改到pre_dev,并且将develop恢复到最后一次提交之前的代码,可以通过如下命令进行操作:
1、git stash //对当前的暂存区和工作区状态进行保存。
2、git fetch //一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地
3、git checkout pre_dev //切换到pre_dev分支
4、git stash pop //恢复工作进度
5、git add . //把文件修改添加到暂存区
6、git commit -m "修改" // 暂存区的所有内容提交到当前分支
7、git pull //拉下远程分支,默认进行合并,git pull = git fetch + git merge
8、git push //没有冲突,代码push到远程端
- git stash
- git stash
- git stash
- git stash
- git stash
- git stash
- Git Stash
- git stash
- git stash
- git stash
- git stash
- git stash
- git-stash
- git stash
- git stash
- git stash
- git stash
- Git - stash
- 记一次给centOS磁盘扩容
- 洛谷[luogu] P1641 [SCOI2010]生成字符串(Catalan数(折线原理)+乘法逆元)
- Eclipse常用的快捷键
- 根据 url地址 下载图片
- Android Studio+ideasmali动态调试smali汇编
- git stash
- 第一课:scala基础入门实战
- POJ 2485 Highways
- [leetcode] 318. Maximum Product of Word Lengths
- 阿里大鱼发短信SDK遇到的一点问题
- ffmpeg常用基本命令
- gsoap 天气预报
- 获取视频的缩略图
- cron表达式详解