51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

git stash暂存当前改动

# 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$
赞(0)
未经允许不得转载:工具盒子 » git stash暂存当前改动