有种情况,我们要修复项目的bug时,但别的分支有修改的代码,要修复的bug可能会影响(所有分支共用一个暂存区)。可以单独创建一个bug分支,用于修复和提交bug,在修改前可以先stash封存分支修改的代码。

测试,首先在slave分支里修改文件:456的内容,然后执行git stash 封存slave分支未提交的代码。

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git checkout slave
Switched to branch 'slave' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git status
On branch slave
nothing to commit, working tree clean laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ ls
bb.css index.html info.py new laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ cat laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ vim laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ cat
修改456文件 laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash
warning: LF will be replaced by CRLF in .
The file will have its original line endings in your working directory.
Saved working directory and index state WIP on slave: 6957dae add
HEAD is now at 6957dae add laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash
No local changes to save laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git log --oneling
fatal: unrecognized argument: --oneling laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git log --oneline
6957dae add
775f3ab add new
6abf028 modify info.py
a068c80 add info.py
c5b475a Revert "add 123"
cfcbd5c add
13f5bcb add
Revert "add adc"
74f7cb6 add bb.css
577fab6 Revert "revert abc"
e1f2701 add adc
358cdac 添加UI.js
04c94a8 添加一个文件index.html

git stash

创建bug01分支,并修复和提交bug文件:998,然后切换到master分支,合并bug01分支

$ git branch bug01

laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git branch
bug01
master
* slave laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git checkout bug01
Switched to branch 'bug01' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ vim laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ cat
fsaldkfsalfjlasjfl
修复bug内容部分 laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ git status
On branch bug01
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: no changes added to commit (use "git add" and/or "git commit -a") laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ git add laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ git commit -m "monify bug 998"
[bug01 487e2eb] monify bug
file changed, insertion(+) laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (bug01)
$ git checkout master
Switched to branch 'master' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git merge
merge mergetool laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git merge bug01 --no-ff -m "merge bug01"
Merge made by the 'recursive' strategy.
| +
file changed, insertion(+) laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master)
$ git log --oneline
f698663 merge bug01
487e2eb monify bug
85bd6ea add dd.css
bdba943 merge slave --no--ff
6957dae add
112da02 modify new
775f3ab add new
8b5d2fd add new
6abf028 modify info.py
a068c80 add info.py
c5b475a Revert "add 123"
cfcbd5c add
13f5bcb add
Revert "add adc"
74f7cb6 add bb.css
577fab6 Revert "revert abc"
e1f2701 add adc
358cdac 添加UI.js
04c94a8 添加一个文件index.html

git merge

最后再解封slave,使用git stash pop可以解封最近的一次封存,使用git stash apply 封存编号可以解封指定的封存位置。

$ git checkout slave
Switched to branch 'slave' laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git status
On branch slave
nothing to commit, working tree clean laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash list
stash@{}: WIP on slave: 6957dae add laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash pop
On branch slave
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: no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{} (3ef365731c328973f18469b046770d7fa1b55e41) laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash
Saved working directory and index state WIP on slave: 6957dae add
HEAD is now at 6957dae add laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash list
stash@{}: WIP on slave: 6957dae add laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$ git stash apply stash@{}
On branch slave
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: no changes added to commit (use "git add" and/or "git commit -a") laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (slave)
$

git stash pop

git stash封存分支 以及关于开发新功能的处理的更多相关文章

  1. git stash 切换分支以后 恢复

    场景: 我在A分支开发 突然要去B分支改东西 但是A分支还没开发完 B又比较着急 又不想提交A 但是不提交又切换不到B 于是就发现有个git stash 将当前修改(未提交的代码)存入缓存区,切换分支 ...

  2. Git之原有基础开发新功能

    场景描述 当一个项目已经上线,同时又在原有基础上新增功能模块,于是乎就要在原有代码的基础上进行开发,在新增模块功能的开发的过程中,项目发现了一个紧急Bug,需要修复.操作流程如下:

  3. SQL Server 2012 开发新功能 序列对象(Sequence)(转)

    转载链接:http://www.cnblogs.com/zhangyoushugz/archive/2012/11/09/2762720.html 众所周知,在之前的sqlserver版本中,一般采用 ...

  4. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  5. 5 个 Git 工作流,改善你的开发流程

    原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...

  6. 使用Git分支开发新特性或修复Bug与使用Git分支开发新特性或修复Bug

    使用Git分支开发新特性或修复Bug 通过分支,可以在不影响原有代码的前提下改变代码,主要用于开发新功能新特性.下 一代产品 为已经发布的正式版修复bug 团队开发时为每个人建立一个分支,从而避免相互 ...

  7. IDEA:Git stash 暂存分支修改的代码

    IDEA:Git stash 暂存分支修改的代码 场景:当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这时正做到半 ...

  8. git 快照及分支

    分支介绍 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平 ...

  9. 史上最浅显易懂的Git教程3 分支管理

    假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...

随机推荐

  1. 力扣算法题—147Insertion_Sort_List

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

  2. Linux NIO 系列(04-4) select、poll、epoll 对比

    目录 一.API 对比 1.1 select API 1.2 poll API 1.3 epoll API 二.总结 2.1 支持一个进程打开的 socket 描述符(FD)不受限制(仅受限于操作系统 ...

  3. HBase 热点问题——rowkey散列和预分区设计

    热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作).大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响 ...

  4. 写第一个 swift,iOS 8.0程序

    class ViewController: UIViewController { @IBAction func btn_click(sender : AnyObject) { println(&quo ...

  5. vue做一个上移和下移,删除的li 功能

    效果图: 思路就是冒泡原理,把数据放到一个空数组,对其进行排序, 单选框用到的是iview . 具体实现代码: <div v-for="item in singledLists&quo ...

  6. add characteristic to color

    Problem: add a new Char. name D_COI6 that the description is Injected coloration #7 (COI6) in the D_ ...

  7. Java的枚举类型使用方法详解

    1.背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏 ...

  8. Nginx基础详细讲解

    Nginx基础详细讲解 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App,操作更方便哦 1. ...

  9. go垃圾回收

    go垃圾回收 当创建一些变量时,变量有一个确定的生命周期.例如函数中定义的局部变量,当函数退出时变量就不存在了.另外在其他情况下,至少对于编译器来说,这不是那么的明显.例如,某个被函数返回的变量的生命 ...

  10. 每天一个Linux命令:man(0)

    man man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助.配置文件帮助和编程帮助等信息. 格式 man [-adfhktwW] [section] [-M path] ...