6.git stash改善工作流程

前瞻

当使用一个分支(如:feature/new-design)进行正常开发时,但是源代码出现一个紧急bug需要及时处理,但是此分支还没完成,又需要使用master分支进行bug处理,所以我们需要用到了git stash

命令

git stash #保存当前进度
git stash save "message" #保存当前修改状态,加上注释信息
git stash list #列出所有的曾经的stash
git stash pop #恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。会删除当前进度!!!
git stash pop --index #恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1} #恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
git stash apply  #恢复指定的进度到工作区。和git stash pop一样只是不删除恢复的进度
git stash clear #删除所有存储的进度

本例使用laravel项目为例

  • 模拟环境
    在laravel项目文件中打开一个终端(我目前用的是windows,要是linux,cd进入该项目文件夹),切换一个分支feature/new-design,运行php artisan make:controller ReportsController生成一个Reports控制器,然后在route.php文件中添加一个路由(随便写如:Route::resource('reports', 'ReportsController');),此时我发现项目有个错误需要更改
  • git stash将feature/new-design分支编写的内容拿出来,然后git checkout master切换到master分支,此时git status将会没有内容提交。
  • 在master分支更改好bug,然后提交之后,切换到feature/new-design分支
  • git stash list查看stash记录,运行git stash apply(可以是git stash apply [stash id(stash@{0})])回到某个原点,此时再次git status看到的就是之前git stash前的内容
  • 在此分支编辑完之后提交合并即可完成,达到目的,下面是我的简单流程





你可能感兴趣的:(6.git stash改善工作流程)