git学习记录3-----分支操作

从master分支创建feature-A 分支和 fix-B 分支

  在进行多个并行作业时,我们会用到分支。在这类并行开发的过程中,存在多个最新代码状态。从 master 分支创建 feature-A 分支和 fix-B 分支后,每个分支中都拥有自己的最新代码。
截图来自github入门与实践
  不同分支中,可以同时进行完全不同的作业。等该分支的作业完成之后再与 master 分支合并。比如 feature-A 分支的作业结束后与 master合并,如下:
分支合并

查看分支

命令git branch

R@R MINGW64 ~/gitlearn (master)
$ git branch
* master

结果只有master说明没有创建其他分支

创建、切换分支

命令git checkout -b 分支名

R@R MINGW64 ~/gitlearn (master)
$ git checkout -b feature-A
Switched to a new branch 'feature-A'

R@R MINGW64 ~/gitlearn (feature-A)
$

可以看到命令执行后,自动切换到feature-A分支
实际上git checkout -b feature-A等价于以下两条命令

git branch feature-A

git checkout feature-A
此时我们再检查分支

R@R MINGW64 ~/gitlearn (feature-A)
$ git branch
* feature-A
  master

  标记星号的是当前分支,如果在当前分支不断提交的话,代码就会提交至这个feature-A分支。像这样不断地对一个分支进行提交,称之为培育分支

培育分支实操

首先在READEME.md进行修改

加入一行**- feature-A**

R@R MINGW64 ~/gitlearn (feature-A)
$ sublime README.md


增加一行
进行提交

R@R MINGW64 ~/gitlearn (feature-A)
$ git add README.md

R@R MINGW64 ~/gitlearn (feature-A)
$ git commit -m "Add -feature-A"
[feature-A 6c64c8c] Add -feature-A
 1 file changed, 2 insertions(+), 1 deletion(-)

切换回master分支

R@R MINGW64 ~/gitlearn (feature-A)
$ git checkout master
Switched to branch 'master'

R@R MINGW64 ~/gitlearn (master)
$

查看README.md发现仍保持修改之前的样子

master分支的README.md文件保持原样
这就是分支操作的优点,可以在互不影响的情况下同时进行多个功能的开发

切换回上一个分支

命令git checkout -
 &emsp使用连字符**“-”**代替上一个分支的名字

R@R MINGW64 ~/gitlearn (master)
$ git checkout -
Switched to branch 'feature-A'

R@R MINGW64 ~/gitlearn (feature-A)
$ git checkout -
Switched to branch 'master'


特性分支

  Git 与 Subversion(SVN)等集中型版本管理系统不同,创建分支时,不需要连接中央仓库,所以能够相对轻松地创建分支。因此,当今大部分工作流程中都用到了特性(Topic)分支。特性分支顾名思义,是集中实现单一特性(主题),除此之外,不进行任何作业的分支。在日常开发中,往往会创建数个特性分支,同时在此之外再保留一个随时可以发布软件的稳定分支。稳定分支的角色通常由 master 分支担当。
特性分支
  之前我们创建了 feature-A 分支,这一分支主要实现 feature-A,除feature-A 的实现之外不进行任何作业。即便在开发过程中发现了 BUG,也需要再创建新的分支,在新分支中进行修正。

  基于特定主题的作业在特性分支中进行,主题完成后再与 master 分支合并。只要保持这样一个开发流程,就能保证 master 分支可以随时供人查看。这样一来,其他开发者也可以放心大胆地从 master 分支创建新的特性分支。

主干分支

  主干分支是刚才我们讲解的特性分支的原点,同时也是合并的终点。通常人们会用 master 分支作为主干分支。主干分支中并没有开发到一半的代码,可以随时供他人查看。
  有时我们需要让这个主干分支总是配置在正式环境中,有时又需要用标签 Tag 等创建版本信息,同时管理多个版本发布。拥有多个版本发布时,主干分支也有多个。

分支合并

命令git merge
首先切换到master分支

R@R MINGW64 ~/gitlearn (feature-A)
$ git checkout -
Switched to branch 'master'

R@R MINGW64 ~/gitlearn (master)
$ git merge --no-ff feature-A
Merge made by the 'ort' strategy.
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

–no-ff命令

这里有个**–no-ff**命令,博主zombres写的非常详细,链接如下
链接: Git 合并时 --no-ff 的作用

使用图表查看分支

命令git log --graph

R@R MINGW64 ~/gitlearn (master)
$ git log --graph
*   commit e1e5b99846f148f04f0cc87a0a75bbf442937f3f (HEAD -> master)
|\  Merge: 0bffe81 6c64c8c
| | Author: RR <xxxxxx@qq.com>
| | Date:   Mon Oct 24 20:01:18 2022 +0800
| |
| |     Merge branch 'feature-A'
| |
| * commit 6c64c8c35152e33e478a24fed2e3851ffb7d6577 (feature-A)
|/  Author: RR <xxxxxx@qq.com>
|   Date:   Mon Oct 24 19:37:37 2022 +0800
|
|       Add -feature-A
|
* commit 0bffe81fd4a24b84f11b05515962211229b65ae1
| Author: RR <xxxxxx@qq.com>
| Date:   Mon Oct 24 10:41:15 2022 +0800
|
|     add a title to README.md
|
* commit d07f69bc0e3f3d4268bd377f9585e80718756c62
  Author: RR <xxxxxxx@qq.com>
  Date:   Sat Oct 22 18:15:55 2022 +0800

      my first commit


今天的git学习结束,明天见!

程序员日快乐!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广阔天地,大有可为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值