gitflow的实战操作案例【经典实操】

一  常见的5大分支

1.1 分支作用概述

二 常见实操

2.1  不同场景的回退

2.1.1 git所包含的区域

2.1.2 git所包含的区域

红色:工作空间改动过

绿色:暂存区

黑色:本地库

场景

动作

描述

有改动,无add,无commit

Git checkout -- 文件名

可视化:git -rollback

工作区本次改动撤销

有改动,有add,无commit

Git reset (mixed) head 文件名

Git reset hard head文件名

可视化:

git reset hard 文件名

Git -rollback

Git reset --mixed <commit>;默认模式,重置到暂存区,不碰触工作目录

根据情况,执行git checkout --文件名,回到工作区。

Git reset --hard <commit>

强硬回滚:并重置暂存区和工作目录。

有改动,有add,有commit

git reset --hard HEAD^

可视化:git -> reset

从本地库回退到工作区

有改动,有add,有commit,有push

本地执行:Git revert <commit hash>

然后: Git push

先恢复,再push

2.1.3 Git的reset命令的三种模式

2.1.4 总结

Git reset: 像是一本书1-7页的书,不要第7页,就像删除第7页,回到第6页。让某段提交的历史消失。

Git revet:想是一本书1-7页的书,新增一页第8页记录回滚到了第7页;它不会改写历史。

总结:

何时使用git revert:当你想要安全撤销一个已经推送到公共仓库的提交时,这是团队首选方案。

他的优势:通过添加新的历史来修正错误,不会破坏其他协作者本地的仓库历史,他们只需要像往常一样 git pull就能同步你的修正。

黄金法则:对私有分支用reset,对公共历史用revert。

2.2 git的stash实现暂存半成品代码*

2.2.1 场景描述

1.你正在功能分支feature进行功能开发,开发到一半,半成品;

2.此时如果master分支有一个bug,需要紧急修复

3.如果执行git checkout master,从feateure分支切换到master分支,Git是会阻止的,因为当前目录有未提交的更改。

2.2.2解决办法

使用git stash 就可以完美解决。

使用git stash 将当前的修改临时保存起来,让工作目录恢复到上次提交的状态,将其变干净,然后你可以自由切换到master分支,拉出hot-fix分支进行修复,修复完成后提交后,切换到feature分支,在把保存的修改取出来,进行工作

2.2.3 案例实操

1.在feature分支上开发,代码写了一半,突然生产报bug,需要解决

2.当前半成品,不方便提交代码到工作现场,需要储藏起来,等以后恢复现场后继续使用;

2.1)在feature分支选择git->stash changes ,进程暂存操作。

2.2 )填写注释

 2.3 )查看效果

3.在master分支创建新分支hot-fix

3.1)创建分支

3.2)填写分支名称

3.3.在hotfix分支修复完bug

4.修复完成后,切换到master分支并完成合并,最后删除刚才创建的hotfix分支

4.1)切换到master分支

4.2)在master分支合并hot-fix;然后进行add,pull,push提交等操作。

4.3)删除分支

6.切换到feature分支,工作区是干净,恢复刚才的工作,通过git stash list查看

对应页面操作,如下:

6.1)方案1:使用git stash  apply恢复,但是恢复后,stash内容并不删除,需要使用git stash drop来删除。

6.2)方案2:使用git stash  pop恢复,同时把stash内容页删除

2.3  cherry-pick的作用

2.3.1 cherry-pick的作用

git cherry-pick 是一个非常有用的 Git 命令,它的核心思想是“精挑细选”。它允许你将某个(或某些)特定的提交从一个分支复制到另一个分支,而不是合并整个分支的所有更改。

简称:分支下,部分有用内容的复制

2.3.2 cherry-pick的案例

案例场景:

A 分支有一个重要的 Bug修复提交,提交信息为 "fix: 修复支付接口超时"

你需要将这个修复同步到 Master 分支

操作:

1.切换到 Master 分支

2.在 Git Log 中找到A分支的那个提交

3.右键 → Cherry-Pick

4.解决可能的冲突(如果有)

5.推送到远程 Master

这样就完成了将特定提交从 A 分支精准应用到 Master 分支的过程!

参考本篇详情案例

https://blog.youkuaiyun.com/u011066470/article/details/144102271

2.4  git的pull与fetch

2.4.1 git的pull与tetch的流程

2.4.2 git的pull与tetch的作用对别

2.5  git的rebase与merge

2.5.1 git的rebase与merge的流程

2.5.2 git的rebase与merge的作用对比

2.5.3 git的rebase与merge的案例说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值