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.csdn.net/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的案例说明

相关推荐
1***s6324 小时前
Git混合现实开发
git·mr
q***R3085 小时前
Git日志
git
草莓熊Lotso6 小时前
Git 本地操作进阶:版本回退、撤销修改与文件删除全攻略
java·javascript·c++·人工智能·git·python·网络协议
不一样的故事1267 小时前
要将 Git 仓库的上传(推送)方式从 HTTP/HTTPS 改为 SSH,
git·http·https
likuolei14 小时前
Git 与 SVN 区别
git·svn
charlee4418 小时前
Git使用经验总结8-Git仓库历史记录清除
git·powershell·敏感信息·仓库重置·历史重写
正经教主20 小时前
【Git】Git05-04:Github分支管理与协作流程
git·github
sean90821 小时前
git filter-repo(优秀的 git repo 历史重写工具) 实战
git·repo·工具