# git stash暂存当前改动 {#git-stash暂存当前改动}
本文讲述如何使用git stash暂存当前的代码改动。当我们正在某个分支上开发1个功能、且没有开发完成时,我们需要切换到其它分支上处理其它的需求(如出于紧急目的等),这时我们又不想提交当前分支不完整的功能代码,怎么办? git stash为此而生,它可以临时保存当前工作区的改动,供日后手动恢复。
# 1. 保存当前的改动 {#_1-保存当前的改动}
git stash save "改成您自己定义的备注"
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$ git stash save "不展示广告"
Saved working directory and index state On master: 不展示广告
HEAD 现在位于 0b5f000 feat(golang): 基于golang gin的脚手架GoSkeleton
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$
执行
git stash
也可以,但是为了方便识别保存的某个stash的具体功能,强烈建议使用save参数加上备注。
# 2. 查看stash列表 {#_2-查看stash列表}
每执行一次git stash就会生成一个stash记录,您可以查看当前所有的stash列表,命令为git stash list
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$ git stash list
stash@{0}: On master: 不展示广告
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$
# 3. 查看某个stash的改动 {#_3-查看某个stash的改动}
# 3.1 粗略
查看某个stash的改动 {#_3-1-粗略查看某个stash的改动}
若想粗略地查看某个stash中, 有哪些文件做了改动,可以使用命令git stash show
默认show第一个stash,如果要显示其他stash,后面加stash@{$num},比如第二个 git stash show stash@{1}
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$ git stash show
docs/.vuepress/components/ArticleBottomAd.vue | 2 +-
docs/.vuepress/components/ArticleFeedAd.vue | 2 +-
docs/.vuepress/components/ArticleTopAd.vue | 2 +-
docs/.vuepress/config.js | 62 ++++-----------------------------------
docs/README.md | 8 ++---
docs/前端/250.vuepress/10.vuepress生成目录.md | 4 +--
docs/友链.md | 2 +-
docs/后台/101.分布式存储/003.分布式对象存储MinIO Sdk的使用.md | 2 +-
8 files changed, 16 insertions(+), 68 deletions(-)
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$
# 3.2 详细
查看某个stash的改动 {#_3-2-详细查看某个stash的改动}
若想查看某个stash中,有哪些文件做了改动,以及每个文件改动的具体内容,可以使用命令git stash show -p
默认显示第1个stash的改动,如果想显示其他stash,命令:git stash show stash@{$num} -p
,比如第2个:git stash show stash@{1} -p
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$ git stash show -p
diff --git a/docs/.vuepress/components/ArticleBottomAd.vue b/docs/.vuepress/components/ArticleBottomAd.vue
index 85b5420..d163387 100644
--- a/docs/.vuepress/components/ArticleBottomAd.vue
+++ b/docs/.vuepress/components/ArticleBottomAd.vue
@@ -1,5 +1,5 @@
<template>
- <ArticleBottomWapFeedBaiduAd></ArticleBottomWapFeedBaiduAd>
+ <!-- <ArticleBottomWapFeedBaiduAd></ArticleBottomWapFeedBaiduAd> -->
</template>
<script>
diff --git a/docs/.vuepress/components/ArticleFeedAd.vue b/docs/.vuepress/components/ArticleFeedAd.vue
:...skipping...
diff --git a/docs/.vuepress/components/ArticleBottomAd.vue b/docs/.vuepress/components/ArticleBottomAd.vue
index 85b5420..d163387 100644
--- a/docs/.vuepress/components/ArticleBottomAd.vue
+++ b/docs/.vuepress/components/ArticleBottomAd.vue
@@ -1,5 +1,5 @@
<template>
- <ArticleBottomWapFeedBaiduAd></ArticleBottomWapFeedBaiduAd>
+ <!-- <ArticleBottomWapFeedBaiduAd></ArticleBottomWapFeedBaiduAd> -->
</template>
<script>
diff --git a/docs/.vuepress/components/ArticleFeedAd.vue b/docs/.vuepress/components/ArticleFeedAd.vue
index 26d8580..5c7b582 100644
--- a/docs/.vuepress/components/ArticleFeedAd.vue
+++ b/docs/.vuepress/components/ArticleFeedAd.vue
@@ -1,7 +1,7 @@
// 信息流广告
<template>
- <ArticleFeedAdAdsense></ArticleFeedAdAdsense>
+ <!-- <ArticleFeedAdAdsense></ArticleFeedAdAdsense> -->
</template>
<script>
# 4. 应用某个stash {#_4-应用某个stash}
若想将某个stash应用到当前
分支,有2种方式:
# 4.1 应用的同时保留该stash记录 {#_4-1-应用的同时保留该stash记录}
执行命令git stash apply
。
该命令不会把stash从stash列表中删除。
默认使用第一个存储,即stash@{0},如果要使用其他个,
git stash apply stash@{$num}
, 比如第二个:git stash apply stash@{1}
# 4.2 应用的同时删除该stash记录 {#_4-2-应用的同时删除该stash记录}
执行命令git stash pop
。
该命令和git stash apply
的区别是,该命令会同时删除该stash记录。
默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
# 5. 删除stash {#_5-删除stash}
# 5.1 删除某个stash {#_5-1-删除某个stash}
git stash drop stash@{$num}
通过$num指定序号,从stash列表中删除指定的某个stash。
# 5.2 删除所有stash列表 {#_5-2-删除所有stash列表}
git stash clear
# 6. 基于stash创建分支(不常用
) {#_6-基于stash创建分支-不常用}
若想创建一个某stash记录生成之前的现场
, 那么基于该stash创建一个分支即可实现。
使用命令git stash branch 分支名称
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$ git stash branch test_stash
切换到一个新分支 'test_stash'
位于分支 test_stash
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: docs/.vuepress/components/ArticleBottomAd.vue
修改: docs/.vuepress/components/ArticleFeedAd.vue
修改: docs/.vuepress/components/ArticleTopAd.vue
修改: docs/.vuepress/config.js
修改: docs/README.md
修改: docs/前端/250.vuepress/10.vuepress生成目录.md
修改: docs/友链.md
修改: docs/后台/101.分布式存储/003.分布式对象存储MinIO Sdk的使用.md
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
docs/其它/001.git/007.git stash临时保存代码文件.md
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
丢弃了 refs/stash@{0} (ff0e48f2a0a5931b9b2baa9afcb5b292a9aa9361)
(py3.6) wangshibiao@wangshibiao:/data/workspace/wangshibiao/vuepress_blog$