首页 > 其他分享 >『现学现忘』Git分支 — 38、Git分支介绍

『现学现忘』Git分支 — 38、Git分支介绍

时间:2022-10-20 21:55:16浏览次数:69  
标签:SVN 38 创建 代码 Git 版本 分支

目录

1、Git分支简介

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着,你可以把你的工作,从开发主线上分离开来,然后在不影响主线的同时继续工作。 在很多版本控制系统中,这是一个略微低效的过程,常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。

有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。

为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

2、Git分支与SVN分支的区别

(1)SVN分支简单说明

  1. SVN中的分支就是版本库中的另外一个完整目录,且这个目录拥有完整的实际文件。(就相当于把版本库复制一份)
  2. 如果团队工作成员想要开启新的分支,那么团队对中的每个人都会拥有和你一样的分支。(因为集中式版本管理系统)
  3. 在SVN中合并分支是非常麻烦和繁琐的,经常会发生有些分支或文件被遗漏的情况。
  4. 当你进行创建和切换分支比蜗牛还慢,简直让人无法忍受。

(2)Git分支简单说明

  1. Git中的分支就是创建一个指针指向某一个提交,就是我可以在Git中的任意一个提交点(commit point)创建分支。
  2. Git中可以任意在自己的本地版本库创建无限个分支。
    我可以开一个分支,做我喜欢的事。完全不需担心妨碍其他工作成员,只要不合并到主仓库中,没有一个工作成员会被影响。
    等到我不需要这个分支时,我只要把它从我的本地版本库删除即可,无痛无痒。
  3. 在Git中很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
  4. 你可以从同一个工作目录下,快速的在几个分支间切换,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

(3)总结

  • 创建分支:Git分支是指针指向某次提交,而 SVN 分支是拷贝的目录。这个特性使 Git 的分支切换非常迅速,且创建成本非常低。
  • 而且Git有本地分支,SVN无本地分支。

3、工作中为什么要使用分支

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响别人工作。

在分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4、Git分支管理的好处

  1. 同时并行推进多个功能开发,提高开发效率。
  2. 版本迭代更加清晰。
  3. 利于代码review的实现,从而使整个团队开发更加规范,减少bug率。

提示:分支对于团队来说作用太大了。

比如说一个项目现在是1.0版,那么开发团队可能要同时进行1.1版和2.0版的开发,这样代码就会出现较大分歧。这时候就需要用到分支了,不同的任务组在不同的分支上开发,互相之间不会影响。

再比如说,需要向项目中添加一个新功能,一般的团队都不会直接在主分支上修改,都会新建一个分支,在上面更改代码。这样做的好处就是保证主线代码的完整性和可用性,也就是说,主线上都是稳定的代码,可以直接拿来发布的。

参考:https://www.liaoxuefeng.com/wiki/896043488029600/896954848507552

标签:SVN,38,创建,代码,Git,版本,分支
From: https://www.cnblogs.com/liuyuelinfighting/p/16811442.html

相关文章

  • Git使用
    Git概述Git是一个免费的,开源,分布式版本控制系统。Git易于学习,占地小,性能快。性能优于Subversion,CVS等版本控制工具。Git最突出的特性是分支特性。版本控制:版本控制是......
  • GitHub--->精确搜索
    in:根据某个关键词进行检索关键词:​ name:项目名​ description:项目描述​ readme:项目帮助文档语法需要检索的内容in:name或者description或readme单独使用如搜索......
  • git常用命令
    <p>初始化:在项目目录里边gitinit添加到缓存区:gitaddfilename提交到本地仓库:gitcommit-m"说明"查看提交记录:gitlog--pretty=oneline--abbrev-commit能查看到回......
  • 通过 Github Action 实现定时推送天气预报
    偶然间,看到GitHubActions教程:定时发送天气邮件-阮一峰的网络日志这篇文章,没错,这个正好能打发自己的折腾之心,也能通过代码给生活引入一些变化。还是在这里简单记录一......
  • git log 查看修改历史
     gitlog--pretty=oneline--format="%h:%ad:%an:%s"-5gitlog--pretty=oneline--format="%H:%ad:%an:%s"-5gitlog--README.md-5--greplogin ###概念......
  • 8-jenkins windows环境下配置自动构建启动项目(springboot,gitlab,maven)
    由于远程办公原因,所以我们的服务必须在一个内网,所以就想到使用jenkins来实现提交后自动构建项目启动,不需要再登录到内网操作。jenkins的安装很简单,网上一大片,然后gitlab......
  • 回溯法 转载自carl的github
    参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!17.电话号码的字母组合力扣题目链接给定一个仅包含数字2-9的字符串,返回所有它能表示的字......
  • Git相关命令
    本地代码提交到远程仓库#初始化仓库$gitinit#添加所有文件至本地仓库$gitadd.#提交文件至本地仓库$gitcommit-m"提交文件内容的说明"#将本地仓库的内容......
  • Git 工作区、暂存区和版本库
    基本概念我们先来理解下Git工作区、暂存区和版本库概念:工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage或index。一般存放在.git目录下的index文件(.git/index)......
  • 重装系统后,原有的Git项目重新连接
    重新系统后,把git原有目录重新关联版本库。  提示错误,一般运行如下能解决问题gitconfig--global--addsafe.directory重装系统前的某个代码仓库 ......