GitHub教程学习笔记3---分支管理
廖雪峰Lec11:创建和管理分支
git branch dev //创建分支命名为:dev
git checkout dev //将指针HEAD由当前分支切换到dev
git branch //查看当前分支目录,应该有master和dev
cat readme.txt //查看内容,记为view1
修改readme.txt
git add readme.txt
git commit -m "branch test" //对readme.txt修改提交到当前分支dev
git checkout master //切换到master
cat readme.txt //查看内容,可以发现与view1相同
git merge dev //将分支dev合并到当前分支master
git branch -d dev //删除分支dev
git branch //只剩下master
小结
Git鼓励大量使用分支:
查看本地分支:git branch
查看本地和远程分支:git branch -a
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
廖雪峰Lec12:解决冲突
git checkout -b feature1 //创建并切换分支
修改readme.txt //记为修改1
git add readme.txt
git commit -m "modification1"
git checkout master //切换到master
修改readme.txt //记为修改2
git add readme.txt
git commit -m "modification2"
git merge feature1 //合并分支,此处会提示冲突,因为master和feature1内容为两个版本
git status //status也会提示有冲突
cat readme.txt
vi readme.txt //查看并手动解决冲突
git add readme.txt
git commit -m "fixed conflict" //解决冲突重新提交
git log --graph --pretty=oneline --abbrev-commit //用带参数的git log //查看分支的合并情况
git branch -d feature1 //删除分支feature1
廖雪峰Lec13:分支管理策略
git checkout -b dev //创建新分支
vi readme.txt //修改readme.txt
git add readme.txt
git commit -m "add merge"
git checkout master //切换回master
git merge --no-ff -m "merge with no-ff" dev //使用带参数的merge,no-ff表示不适用fastforward
git log --graph --pretty=oneline --abbrev-commit //查看分支合并情况
小结
1.实际开发中,master应该是非常稳定的一个分支,只用来发布新版本,平时不能在上面干活;
干活都是在dev分支上,也就是说dev分支是不稳定的,小伙伴们时不时更新dev,发布1.0版本时再合并到master上;
小伙伴们各自建立自己的分支比如:LuffysMan,Lisann
2.合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
廖雪峰Lec14:Bug分支
//假设当前正在进行readme.txt 2.0版本的制作,处于分支dev,突然接到代号101bug修复任务,要求紧急修复master上readme.txt的一个bug
git status //处于分支dev,且readme.txt 已被修改
git stash //保存当前工作状态到另一个。。平行宇宙吧
git status //查看状态,工作区是干净的
git checkout master //在master上创建issue101分支用来修复bug
git checkout -b issue101
vi readme.txt //修复bug
git add readme.txt
git commit -m "fix bug101"
git checkout master
git merge --no-ff -m "merged bug fix 101" issue101 //合并分支到master
git branch -d issue101
git checkout dev //切换回dev准备继续readme.txt 2.0版本的制作~~
git status //发现工作区是空的
git stash list //查看保存到平行宇宙的工作
git stash pop //从平行宇宙取回工作哈哈
git stash list //平行宇宙里面是空的
小结
对此场景有疑问的,我觉得这个网友的说法还挺好滴(下面内容来自Shi_Chunyuan)
1、master 上面发布的是A的1.0版本
2、dev 上开发的是A的2.0版本
3、这时,用户反映 1.0版本存在漏洞,有人利用这个漏洞开外挂
4、需要从dev切换到master去填这个漏洞,正常必须先提交dev目前的工作,才能切换。
5、而dev的工作还未完成,不想提交,所以先把dev的工作stash一下。然后切换到master
6、在master建立分支issue101并切换.
7、在issue101上修复漏洞。
8、修复后,在master上合并issue101
9、切回dev,恢复原本工作,继续工作。
补充:git stash pop 等同于 git stash apply, git stash drop
廖雪峰Lec15:Feature分支
//你正在dev上码代码,突然boss让你开发一个新的NB Game; OK,fine,let's do it
git status //处于dev
git branch -b feature-nbgame //新建分支用于开发nbgame!
vi nbgame.py //成功搞定
git add nbgame.py
git commit -m "add nbgame"
git checkout dev //cao,boss说资金不够,nbgame项目取消,代码要删除;OK,f(f)i(u)n(c)e(k)
git branch -d feature-nbgame //纳尼,删除不了?
git branch -D feature-nbgame //用大写参数-D即可
小结
开发一个新的feature,最好新建一个分支
如果要丢弃一个没有合并过的分支,可以通过git branch -D feature-name 强行丢弃
转载于:https://www.cnblogs.com/LuffysMan/p/9859087.html
GitHub教程学习笔记3---分支管理相关推荐
- Git学习笔记:分支管理3
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:分支管理(2)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:分支管理(1)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:标签管理以及GItHub
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案
Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案:深度评测.辅助工具.信息管理.时间管理.任务管理.思维管理.项目管理.文件管理.笔记方法.记忆方法.写作方法 关于 Notion ...
- 廖雪峰Git教程学习笔记
廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...
- SQL数据库教程-学习笔记2
SQL数据库教程-学习笔记2 文章目录 SQL数据库教程-学习笔记2 三.DML语言的学习 1.插入语句:insert into 2.修改语句:update 3.删除语句:delete 4.练习题 四 ...
- Linux教程学习笔记
Linux教程学习笔记 目录 Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 ...
- 【从零开始的大数据学习】Flink官方教程学习笔记(一)
Flink官方教程学习笔记 学习资源 基础Scala语法 Scala数据结构专题 声明变量 代码块 函数(function) 方法(methods) Traits (接口) class(类) tupl ...
最新文章
- Win10系列:JavaScript图形
- 【收藏】vuejs学习笔记github地址
- fork创建多个子进程
- 我要重构“软件行业”......
- java 网络编程学习笔记
- HTC推区块链手机;微软终于更新Windows Notepad;Python之父退出决策层 | 极客头条...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
- Ionic项目中如何使用Native Camera
- k8s(Kubernetes) 上部署 Redis 集群(3主3从)
- 关于按钮背景透明 + div拖拽
- AD转换的一个硬件实现原理
- 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)
- 【js】复选框,复选下拉框,文本框勾连
- 和平精英封十年修改服务器,和平精英反开挂系统升级,观战作弊最低封号十年,网友:大快人心...
- linux合并pdf命令,科学网—[转载]linux下利用命令行工具pdftk对PDF进行合并分割(转载) - 崔鹏碧的博文...
- 前端中的icon几种用法
- Mendeley无法安装word插件解决方案及插入参考文献教程
- idea警告:Unchecked cast: ‘java.lang.Object‘ to ‘java.util.List
- 解决yum软件无法安装的问题
- 不仅仅是技术——亚马逊云科re:Invent2022
热门文章
- iOS字体换算 PS的字体大小 =iOS上字体大小
- Jenkins怎么启动和停止服务
- 通过form表单请求servlet资源代码
- 【源码分享】用Java写的网页图片、CSS、JavaScript分类下载器
- ASP.NET 2.0 正式版中无刷新页面的开发
- jsp 使用base标签 没有作用_终于弄明白衣服上,使用前请移除的标签到底是什么,起什么作用...
- linux内核dma内存分配,Linux 4.x 内核空间 DMA 虚拟内存地址
- linux 修改时区_如何在 Ubuntu 20.04 上设置或者修改时区
- python3 读取.plist文件_Python学习笔记 -5 - 文件操作
- 八皇后算法python_Python学习二(生成器和八皇后算法)