赞
踩
879efe
处开辟一个小分支,最后还可以把做的内容合并起来。每一次提交的时候,都会生成一个新的版本,并且 HEAD 指针会指向新的版本,
再提交一次的话,HEAD会指向新的任务
三个提交,形成一条横线,这个横线称为主分支,可以理解为树干(默认存在)。后续可以在主分支上发叉(分支),
分支:在原来的任务上,开辟新的任务,来做新的任务,最后还可以把任务合并起来
git branch
分支名称git branch
会列出当前有哪些分支,以及当前正在使用的分支是哪一个(当前使用的用*标记,下图所示,绿色)git checkout
分支名称( tab 可以补齐)newBranch分支由主分支切换而来,所以其内容和主分支是一样的
在newBranch分支中创建 b.txt 文件
查看一下状态
将 a.txt 添加到缓存区
然后做一个提交,提交到本地仓库
再做 git log 的时候,发现有三条记录了,其中b.txt是在新分支上做的操作,并提交,则HEAD将指向新的分支版本
主分支上没有 b.txt,还停留在 '70bac4a37f’的版本
我们切回主分支,发现确实没有 b.txt
主分支中只有两个记录
继续在主分支 master 上做操作,生成新的版本
切换到分支 newBranch,是看不到主分支中添加的 c.txt 的
将两条线做的合并为一条线,合并之前,一定要弄清楚,是谁合并谁,看当前HEAD指向谁,谁就是当前分支,把另一个分支合并到当前分支上来。
例:将newBranch 分支合并到主分支上,下图为当前状态
先将当前分支由newBranch切换到master主分支
合并分支,使用merge命令,合并后,主分支master上多了一个b.txt,来自newBranch分支,已经合并到了master
合并之后,newBranch 分支还存在
如果想把 newBranch 分支删除,git branch -d 分支名称
上图中,按q即可重新输入
删除分支之前,我们先看一下分支(合并分支,并不会删除以前的分支,除非手动删除分支)
需求就是把分支应用一下,在主分支上有一个工程,在工程当中做登录功能的时候,突然发现之前的版本有bug,此时,应该回到以前的那个版本,去修改那个bug,修改完bug之后,还要提交到主线上面去,
在主分支上创建一个工程,在工程当中添加登录.html(登录功能)
创建一个分支,回退到上一个版本,提交合并
上图是已发布版本,突然告诉你版本 1a275e62f 有 bug,而此时版本 716b3d1d 已经开发了一半。此时我们要回到以前的版本 1a275e62f ,并开一个分支,去做这件事情,
切换分支后,其实应该是下图效果,相当于把主分支的内容,搞了一份放到子分支里面,
把 HEAD 指向子分支,
然后回退到上一个版本 git reset
查看一下该版本的内容,有 a.txt 和 c.txt 两个文件,没有 b.txt
在 a.txt 中添加一些内容,a.txt是空的内容
通过 cat 命令查看a.txt的内容,发现为空(啥也没有输出)
回车后,按 i 键 进行编辑
输入hellow world,然后底部通过 wq功能,回车进行保存
想要把输入的内容保存:先按esc键,接着按shift+冒号,看下图的变化
回车后即可实现保存,并再次通过 cat 命令查看此时内容
假设此时已经修复了bug
还是红色,需要添加到缓存区,然后提交到本地仓库
此时达到目的:在紧急分支 hotBranch 中把 1a275e62f 存在的问题修复完毕,并生成了一个新的版本 51caa1252
然后把 hotBranch 分支内容合并到主分支上去,首先切换到主分支master上
把 hotBranch 合并到 主分支 master 上,可以看出,在 a.txt 上加了一项信息
合并之后,主分支 master 中,a.txt、b.txt和c.txt都存在
查看 a.txt 的内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。