# gitdemo **Repository Path**: chanchaw/gitdemo ## Basic Information - **Project Name**: gitdemo - **Description**: 演示 git 解决各种问题的方案 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-07 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概述 本项目演示 git 解决各种问题的方案,创建于 2022年2月7日 12:27:01。项目创建之初只有本文件。 ## 各种案例 ### 通过贮藏修复紧急BUG 当在 dev 分支进行开发时发现 master 分支下有 bug,此时想要保留 dev 上的工作并在 master 分支基础上修复 bug 并上线新项目,然后切换到 dev 继续开发,则需要用到贮藏功能 - stash。见目录 stash 下的案例。 1. 为完成的开发工作,不论是新增文件或者修改文件,通过 git add . 将整个项目进行的工作暂存起来 2. 执行命令 git stash push 将工作贮藏 3. 通过 git status 可以看到目录是干净的,即将之前的工作暂存起来了 4. 接下来可以进行其他修复 bug 的工作了,完毕后正常提交并 push 5. 通过命令 git stash apply 将贮藏区的工作内容恢复到当前分支,继续进行开发 关于 stash 的其他应用: 通过 git stash push 贮藏后,可通过 git stash list 查看已经贮藏的工作内容,类似下面: ```bash stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert "added file_size" stash@{2}: WIP on master: 21d80a5 added number to log ``` 上面的显示表示当前有3个贮藏的工作分别是:stash@{0}、stash@{1}、stash@{2} 序号0是最近贮藏的内容,通过 git stash apply 应用时由于没有明确应用哪个贮藏内容,则默认将序号0的内容应用到项目中,如果要指定应用哪个贮藏内容则: ```bash git stash apply stash@{1} ``` 注意通过 git stash apply 应用贮藏内容后,该内容仍然保留在栈中,并没有被删除,如果想要在应用的同时删除该贮藏内容则使用 ```bash git stash pop ``` 如果已经通过 git stash apply 应用了贮藏导致内容仍然被保留在栈中,也可以通过 ```bash git stash drop stash@{0} ``` 指定名称删除贮藏内容。或者不指定名称,通过下面的方式删除最上面的贮藏内容: ```bash git stash drop ```