Git stash的用法

在开发完成一个版本后,我们会提交一分干净的代码到分支上,然后新建一个分支,去开发新的功能。

但是,天有不测风云,在新功能做了一部分的时候,还没开发完成,Boss告知,上一个版本有个问题,需要修改。此时,新功能还未开发完成,不想提交。那怎么办?

此时,我们可以使用Git stash命令,命令简介:git stash

git stash
命令用来临时地保存一些还没有提交的工作,以便在分支上不需要提交未完成工作就可以清理工作目录。

$ git stash
warning: LF will be replaced by CRLF in app/src/main/java/com/xxx/xxx/
xxx/ConfigInfo.java.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in app/src/main/res/layout/item_index_ad.xml.
The file will have its original line endings in your working directory.
Saved working directory and index state WIP on zzy/feature/issue-8: 25d8758 Merg
e pull request #7 from buzzerbeat/zzy/feature/issue-5
HEAD is now at 25d8758 Merge pull request #7 from buzzerbeat/zzy/feature/issue-5

报了两个警告,暂时不用管它。
然后在使用git status命令:

$ git status
On branch zzy/feature/issue-8
Your branch is up-to-date with 'origin/zzy/feature/issue-8'.

nothing to commit, working directory clean

最后一句显示,工作目录是干净的了。此时,我们就可以做一些其他的操作了。

一会后,我们调整完了,需要接着开发新的功能,我们就需要把之前的代码拿出来,之前的代码其实是储藏在栈中了,这时候,需要借助 git stash pop 命令,使代码弹出栈。


$ git stash pop
On branch zzy/feature/issue-8
Your branch is up-to-date with 'origin/zzy/feature/issue-8'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   app/libs/GDTUnionSDK.4.8.527.min.jar
        new file:   app/src/main/res/layout/item_index_ad.xml

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   app/build.gradle
        modified:   app/src/main/AndroidManifest.xml
        ...//这里省略,因为我修改了很多。

这样,我们又可以接着新功能愉快的开发了。
以上。

附:Git 工具 - 储藏与清理 这里讲的相当完善,不仅仅只这一个方面。
学习更多git使用,戳这里!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,958评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,963评论 0 11
  • 一、电脑本地初始化一个仓库 1. git init: 初始化一个电脑上本地仓库 终端进入项目目录,输入: 该命令将...
    dragon_li阅读 3,005评论 1 4
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,792评论 1 17
  • 一天的实操课 收益颇多 当真实的电子元器件放在眼前去识别和认知的时候 记忆会非常的深刻 老师介绍的我跟详细 今天焊...
    90刘云鹏阅读 148评论 0 0