Git教程学习:09 Git分支

这篇具有很好参考价值的文章主要介绍了Git教程学习:09 Git分支。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 分支的简介

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着我们可以把我们的工作从开发主线分离开来,从而影响开发主线。在很多版本控制系统中,效率稍低这个过程——通常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会消耗很多时间。

有人把 Git 的分支模型称为它的“必杀技术特性”,也正因为这种特性,使得 Git 从队列版本控制系统中移动。为何 Git 的分支模型如此出众呢? Git 处理分支的方式就好比是速度非常轻,创建新分支这一操作几乎可以瞬间完成,并且在不同分支之间的切换操作也同样快捷。与许多其他版本控制系统不同,Git 鼓励在工作流程中间隔地使用分支与合并,这一天之内进行了许多次。理解并掌握了这一特性,我们就会意识到 Git 的强大的独特性,从而真正改变我们的开发方式。

2 分支的相关操作

2.1 分支的创建

使用git branch可以查看现有分支或创建新的分支。

当不带任何命令参数时,输入git branch可以帮助我们查看当前项目所拥有的全部分支。并且Git会使用*来标明我们当前所处的分支上。

$ git branch

Git教程学习:09 Git分支,Git教程学习,git

当我们在git branch后面加上<branchname>即可创建新分支:

$ git branch <branchname>
$ git branch

Git教程学习:09 Git分支,Git教程学习,git

2.2 分支的切换

使用git checkout <branchname>命令切换分支:

$ git checkout <branchname>
$ git branch

Git教程学习:09 Git分支,Git教程学习,git

切换分支后,我们就可以进行自己的开发。分支上的文件状态是不同的。我们可以通过下面的例子有着更深入的了解。

# 切换分支
$ git checkout issue102

# 在分支上创建新的文件
$ touch issue102.md
$ git add issue102.md
$ git commit -m "update issue102.md"

$ touch issue102.html
$ git add issue102.html
$ git commit -m "update issue102.html"

Git教程学习:09 Git分支,Git教程学习,git

在完成上述命令后,通过git log --oneline检查下当前Git的记录。

git log --oneline

Git教程学习:09 Git分支,Git教程学习,git

2.3 分支的合并

当我们在分支上完成来开发工作后,我们需要将我们在当前分支进行的工作合并到主分支上。首先我们需要切回需要合并到的分支上,此处以issue102合并到main上为例子进行演示:

# 切换回主分支
$ git checkout main

# 使用git merge进行合并
$ git merge issue102

# 查看所有未合并工作的分支
$ git branch --no-merged

Git教程学习:09 Git分支,Git教程学习,git

有时候分支的合并不会一番顺利,当我们在两个分支中对同一个文件的同一个部分进行了不同的修改,Git就没有办法顺利的合并他们,会在合并的时候产生合并冲突。比如我们在issue102分支和main分支下对issue102.md文件进行了修改,当我们将issue102分支融合到主分支上时就会发生冲突。如下图所示:

Git教程学习:09 Git分支,Git教程学习,git

我们也可以通过git status查看命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件。当出现矛盾后,合并的文件内容将会出现"<<<<<<“,”====“,”>>>>>>"等分割线来进行标记。如下图所示:

Git教程学习:09 Git分支,Git教程学习,git

当出现矛盾时,我们需要进行手动合并或者放弃合并

  • 手动合并:

手动合并的方法很简单,即我们选择要保留的代码,然后把>>>>>, ====, <<<<<<这些提示行给去掉。最后重新进行add commit的操作即可。

  • 放弃合并:

当冲突所导致的改动量很大时,我们可以选择放弃该次的合并。使用git merge --abort放弃此次的融合。如果我们在运行了git merge之后又进行了一些人为的改动,那么在abort之后,所进行的改动也会被回滚掉。

  • mergetool:

除了手动合并以及放弃合并之外,git官方开发了一个专门用来合并的工具,叫做git mergetool,它会将找到一份两个分支的祖先代码作为base(基准),然后再将两个分支的改动都列举出来作为对比,让我们在git编辑器当中决定要留下什么。

  • Use vimdiff as git mergetool
  • 使用vimdiff作为git mergetool

2.4 分支推送到远程

我们可以使用git remote -v查看远程库的详细信息。这会显示我们可以抓取或推送的origin地址。

$ git remote -v

Git教程学习:09 Git分支,Git教程学习,git

当我们需要推送本地分支到远程时,需要指定具体的本地分支:

# 推送本地的main分支到远程
$ git push origin main

# 推送本地的issue102分支到远程
$ git push origin issue102

Git教程学习:09 Git分支,Git教程学习,git

当我们多人协作进行开发的时候,我们就需要使用git pull的命令来试图合并。如果合并出现冲突时,我们需要解决冲突再提交。参考多人协作。

2.5 分支的删除

Git的分支删除可以分为删除本地分支删除远程分支

  • 删除本地分支
$ git branch -d <branchname>

# -D 表示强行删除分支
$ git branch -D <branchname>

Git教程学习:09 Git分支,Git教程学习,git

Git教程学习:09 Git分支,Git教程学习,git

  • 删除远程分支
# origin 是远程的主机名
# branchname 需要删除的远程分支名
$ git push origin --delete issue102

Git教程学习:09 Git分支,Git教程学习,git

2.6 分支的重命名

$ git branch -m oldBranchName newBranchName

当我们想要将改名后的分支推送到远程时,我们需要进行如下操作:

$ git branch -m oldBranchName newBranchName   # 将本地的分支进行重命名
$ git push origin newBranchName               # 将新的分支推送到远程       
$ git push --delete origin oldBranchName      # 删除远程的旧的分支 

Git教程学习:09 Git分支,Git教程学习,git

3 分支开发工作流程

当我们已经了解了分支的操作后,我们应该考虑使用一种怎样的方式使我们最大化的使用分支操作的优点。在接下来的这部分中,将会介绍一些常见的分支开发工作流程。而正是由于分支管理的便捷,才衍生出这些典型的工作模式,我们以后可以根据项目实际情况进行使用。

3.1 长期分支

因为 Git 使用简单的三方合并,所以即使在一段短暂的时机,反复把一个分支合并到另一个分支中,也不是难事。也就是说,在整个项目开发周期的不同阶段,我们可以同时拥有多个开放的分支,可以定期地把某些主题分支合并到其他分支中。

许多使用 Git 的开发者都喜欢使用这种方式来工作,比如只在main分支上保留完全稳定的代码——有可能已经发布或即将发布的代码。他们还有一些叫做develop或者next的分支,被用来做后续开发或者测试稳定性——这些分支必须保持稳定,一旦达到稳定状态,它们就可以被合并入main分支了。

Git教程学习:09 Git分支,Git教程学习,git

Git教程学习:09 Git分支,Git教程学习,git

一些大型项目还有一个proposed(建议)或pu: proposed updates(建议更新)分支,它可能因包含一些不成熟的内容而不能进入next或者main分支。

3.2 短期分支

短期分支也叫做主题分支,它对任何规模的项目都适用。主题分支是一种短期分支,它被用来实现单一功能或者相关工作。比如bug分支issue分支develop分支topic分支

分支开发工作流程基本原则:

  • master分支应该是最稳定的,也就是仅用来发布新版本,平时不能直接在上面进行操作,应该保存在远程。

  • 短期分支是我们干活的分支,短期分支可以不用上传到远程,当我们完成了bug的修复,新功能的开发时才需要合并到主分支上。

  • 多使用分支来进行开发工作。文章来源地址https://www.toymoban.com/news/detail-808701.html

到了这里,关于Git教程学习:09 Git分支的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [教程]使用 Git 克隆指定分支

    Git 是我们开发过程中经常使用到的版本管理工具,在平常情况下我们从远程克隆的时候会将整个库克隆下来,这会包括整个版本库的历史提交记录和远程库里的所有分支。但在一些情况下,比如我们并不需要查看历史提交记录而只是希望能够获取到最新的代码;或者我们只希

    2024年02月03日
    浏览(62)
  • git使用教程7-pycharm 使用 git merge 合并分支

    前面一篇已经用 pycharm 创建了分支,当我们在某个分支上代码开发完成,代码测试没问题后需要把分支上的代码合并到 master 分支上。 这样保证 master 分支的代码永远都是最新的,也是最干净的,这样才可以持续的开发自己的项目。本篇讲解如何使用 pycharm 合并自己的分支。

    2024年02月12日
    浏览(48)
  • 使用git本地创建多分支教程

    选择想要新建分支的位置打开git 初始化git 会发现文件夹中生成了隐藏的.git文件夹。 新建分支 checkout -b 会新建分支并且切换到这个分支 commit一次 查看缓存区 重点来了,给远程仓库新建这个分支 仓库url示例:git@gitee.com:账户名/仓库名.git,可以在gitee仓库管理查到 查看仓库信

    2024年02月16日
    浏览(41)
  • Git gui教程---第八篇 Git gui的使用 创建一个分支

    一般情况下一个主分支下代码稳定的情况下会新建出一个分支,然后在分支上修改,修改完成稳定后再合并到主分支上。 或者几个人合作写一份代码,每个人各一个分支,测试稳定再合并到主分支上。 在git gui选择菜单栏“分支”,选择新建 填写名称,点击新建 我在新的分

    2024年02月11日
    浏览(50)
  • GIT如何批量删除分支(IDEA版教程)

    日常迭代中我们在使用GIT的时候对代码一直提交合并提交合并 时间久了是否为了几百几千个分支删除而困扰 尝试命令后各种报错和失败后今天我们就不用命令来操作 首先需要一个IDEA工具导入代码 !码农必备的大部分都有了 1.右键工程 点击 GIT - show history 2.点击Log:all 我们看

    2024年04月14日
    浏览(29)
  • Git将单个文件合并到指定分支教程。

    要将单个文件合并到指定分支,你可以按照以下步骤进行操作: 确保你当前位于要合并文件的源分支上。可以使用  git branch 命令查看当前分支,并使用  git checkout 命令切换到源分支。 使用  git checkout 命令切换到目标分支,即你想要合并文件的分支。 使用  git checkout 命令

    2024年02月03日
    浏览(52)
  • Git入门实战教程之合并分支并解决冲突

    在开发过程中,难免会遇到代码冲突的情况,那么该如何处理呢? 分支策略: 首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到

    2024年04月10日
    浏览(52)
  • Git基础教程:使用Git Clone指令克隆指定分支的代码到嵌入式系统

    Git是一种分布式版本控制系统,广泛应用于软件开发中。Git Clone是Git的一条常用指令,用于克隆远程代码仓库到本地。在嵌入式系统开发中,我们经常需要从远程仓库中获取特定分支的代码,并将其部署到嵌入式设备上。本文将详细介绍如何使用Git Clone指令来克隆指定分支的

    2024年02月04日
    浏览(61)
  • Git学习 -- 分支合并、版本修改相关

    目录 learn GIT Learn Git Branching merge和rebase的使用 基础命令 版本回退 工作区和暂存区 管理修改 撤销修改 删除修改 learn GIT Learn Git Branching 这是Gitee上的Git学习教程 Learn Git Branching Git Rebase Learn Git Branching 最终的实操 merge和rebase的使用 参考: https://www.cnblogs.com/michael-xiang/p/131798

    2024年01月24日
    浏览(57)
  • git学习笔记 | 版本管理 - 分支管理

    学习文章1 学习文章2 学习文章3 Git是开源分布式版本控制系统,版本控制是一种记录文件内容变化,查阅特定版本修订情况的系统。 说法1 说法2 虽然有两种说法,但大概意思是相同的,前三个区域都在本地,只有远程仓库不在本地。 本地仓库 = 工作区 + 版本区 工作区:本地

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包