廖雪峰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---分支管理相关推荐

  1. Git学习笔记:分支管理3

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  2. Git学习笔记:分支管理(2)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  3. Git学习笔记:分支管理(1)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  4. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  5. Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案

    Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案:深度评测.辅助工具.信息管理.时间管理.任务管理.思维管理.项目管理.文件管理.笔记方法.记忆方法.写作方法 关于 Notion ...

  6. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  7. SQL数据库教程-学习笔记2

    SQL数据库教程-学习笔记2 文章目录 SQL数据库教程-学习笔记2 三.DML语言的学习 1.插入语句:insert into 2.修改语句:update 3.删除语句:delete 4.练习题 四 ...

  8. Linux教程学习笔记

    Linux教程学习笔记 目录 Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 ...

  9. 【从零开始的大数据学习】Flink官方教程学习笔记(一)

    Flink官方教程学习笔记 学习资源 基础Scala语法 Scala数据结构专题 声明变量 代码块 函数(function) 方法(methods) Traits (接口) class(类) tupl ...

最新文章

  1. Win10系列:JavaScript图形
  2. 【收藏】vuejs学习笔记github地址
  3. fork创建多个子进程
  4. 我要重构“软件行业”......
  5. java 网络编程学习笔记
  6. HTC推区块链手机;微软终于更新Windows Notepad;Python之父退出决策层 | 极客头条...
  7. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
  8. Ionic项目中如何使用Native Camera
  9. k8s(Kubernetes) 上部署 Redis 集群(3主3从)
  10. 关于按钮背景透明 + div拖拽
  11. AD转换的一个硬件实现原理
  12. 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)
  13. 【js】复选框,复选下拉框,文本框勾连
  14. 和平精英封十年修改服务器,和平精英反开挂系统升级,观战作弊最低封号十年,网友:大快人心...
  15. linux合并pdf命令,科学网—[转载]linux下利用命令行工具pdftk对PDF进行合并分割(转载) - 崔鹏碧的博文...
  16. 前端中的icon几种用法
  17. Mendeley无法安装word插件解决方案及插入参考文献教程
  18. idea警告:Unchecked cast: ‘java.lang.Object‘ to ‘java.util.List
  19. 解决yum软件无法安装的问题
  20. 不仅仅是技术——亚马逊云科re:Invent2022

热门文章

  1. iOS字体换算 PS的字体大小 =iOS上字体大小
  2. Jenkins怎么启动和停止服务
  3. 通过form表单请求servlet资源代码
  4. 【源码分享】用Java写的网页图片、CSS、JavaScript分类下载器
  5. ASP.NET 2.0 正式版中无刷新页面的开发
  6. jsp 使用base标签 没有作用_终于弄明白衣服上,使用前请移除的标签到底是什么,起什么作用...
  7. linux内核dma内存分配,Linux 4.x 内核空间 DMA 虚拟内存地址
  8. linux 修改时区_如何在 Ubuntu 20.04 上设置或者修改时区
  9. python3 读取.plist文件_Python学习笔记 -5 - 文件操作
  10. 八皇后算法python_Python学习二(生成器和八皇后算法)