一 常见的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的案例说明

1257

被折叠的 条评论
为什么被折叠?



