首页 > 其他分享 >Idea中Git分支、合并与使用

Idea中Git分支、合并与使用

时间:2023-05-25 14:24:54浏览次数:42  
标签:Git iss53 合并 Idea master 提交 hotfix 分支

1.分支的新建与合并使用场景介绍

  让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤:

  1. 开发某个网站。
  2. 为实现某个新的需求、问题(#53问题),创建一个分支(名为:iss53)。
  3. 在这个分支上开展工作。

  正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理:

  1. 切换到你的线上分支(production branch)。
  2. 为这个紧急任务新建一个分支(名为:hotfix),并在其中修复它。
  3. 在测试通过之后,切换回线上分支(名为:master),然后合并这个修补分支,最后将改动推送到线上分支,并删除hotfix分支。
  4. 切换回你最初工作的分支(iss53)上,继续工作。
  5. iss53问题处理完后,合并到master主干上,删除iss53分支。

2、新建分支

  首先,我们假设你正在你的项目上工作,并且已经有一些提交。

  img

  这是一个简单提交历史

  现在,你已经决定要解决你的公司使用的问题追踪系统中的 #53 问题。 想要新建一个分支并同时切换到那个分支上,idea上操作如下:

  img

  填写分支名称

  img

  在iss53分支上开发,如下

  img

  将分支推送到远程仓库

  img

  点击push推送到远程仓库

  img

  在远程仓库查看是否有iss53分支

  img

  分支的创建与提交完成!

3、开发iss53的过程中新建分支(hotfix)解决线上问题后,并删除该分支

  分支随着工作的进展向前推进

  现在你接到那个电话,有个紧急问题等待你来解决。 有了 Git 的帮助,你不必把这个紧急问题和 iss53 的修改混在一起,

  你也不需要花大力气来还原关于 53# 问题的修改,然后再添加关于这个紧急问题的修改,最后将这个修改提交到线上分支。 你所要做的仅仅是切换回 master 分支。

  idea上操作如下:

  img

  特别注意:在你这么做之前,要留意你的工作目录和暂存区里那些还没有被提交的修改,它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。 最好的方法是,在你切换分支之前,保持好一个干 净的状态。 有一些方法可以绕过这个问题(即,保存进度(stashing) 和 修补提交(commit amending)),我们会在 储藏与清理 中看到关于这两个命令的介绍。

   这个时候,你的工作目录和你在开始 #53 问题之前一模一样,现在你可以专心修复紧急问题了。

   请牢记:当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。

  Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样。

  接下来,你要修复这个紧急问题。 让我们建立一个针对该紧急问题的分支(hotfix branch),在该分支上工作直到问题解决:

  img

  这个时候,git的分支结构图如下:

  img

  基于 master 分支的紧急问题分支 hotfix上进行代码开发,模拟如下:

  img

  你可以运行你的测试,确保你的修改是正确的,然后提交代码到远程仓库,提交到远程仓库的操作与刚才提交iss53操作一样。

  当hotfix这个紧急问题的分支开发完成后,将其合并回你的 master 分支来部署到线上。 你可以使用idea的 git merge来达到上述目的:

  首先切换到master

  img

  然后,以master为主线合并hotfix,这个很重要,因为是以master为主,将hotfix的的代码合并到master上,不要把顺序弄返

  img

  现在,最新的修改已经在 master 分支所指向的提交快照中,这是你只需要提交master到远程仓库(非常重要,千万别忘记),你可以着手发布该修复了。

  此时,git的分支结构图如下:

  img

  搞定,这时候紧急问题已解决,并且顺利的合并到了master主线上,接下来我们就应该删除分支hotfix

  删除本地仓库分支hotfix

  img

  删除远程仓库分支hotfix

  img

4、回到分支iss53上继续工作,工作完后合并到master,并删除iss53分支

  回到iss53分支上

  img

  当前git分支结构如下图:

  img

  继续在分支iss53上写代码

  img

  iss53开发完成,提交到远程分支(同之前操作一样,图略);

  切换到master分支(同之前操作一样,图略);

  将iss53分支合并到master分支上(同之前操作一样,图略),此时的分支结构图如下:

  img

  删除本地iss53分支(同之前操作一样,图略);

  删除远程iss53分支(同之前操作一样,图略);

  完美!

标签:Git,iss53,合并,Idea,master,提交,hotfix,分支
From: https://www.cnblogs.com/995i996/p/17431064.html

相关文章

  • Pycharm配置Gitee
    在Pycharm中通过GIT把项目上传到Gitee学习PyQt5,准备编个小程序,上传到Gitee,老是用命令行太麻烦,所以准备在Pycharm中配置上传工具,网上找了好多教程,记录整理一下。 一、工具及准备工作Pycharm我的是PyCharmCommunityEdition2021.3.2Git官网在国内下载太慢,可以用镜像下载:G......
  • IDEA Live Templates
    LiveTemplates可参考:https://jetbrains.com.zh.xy2401.com/help/idea/settings-live-templates.html方法文档注释Templatetext***@description:$DESCRIPTION$*@version:$VERSION$*@date:$DATE$$TIME$*@param:$PARAM$*@return:$RETURN$*@author:Den......
  • docker 搭建gitlab
    一、官网地址:https://docs.gitlab.cn/jh/install/docker.html二、步骤: 1.要求至少4个G 2.先在linux主机创建一个gitlab的主目录,用于容器挂载:/srv/gitlab 3.设置设置gitlab的环境变量(不设置也可以)exportGITLAB_HOME=/srv/gitlab 4.docker启动镜像sudodocker......
  • 浅谈GitHub——程序员的圣地
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(G......
  • 【IntelliJ IDEA】UTF-8编码下\u7528\u6237转换为中文汉字,\u9489\u9489\u81EA\u
    本文目录一、背景描述二、问题原因三、解决方案一、背景描述本地开发环境,Windows10+IntelliJIDEA+Springboot项目。在开发项目中遇见设置文件编码格式为UTF-8,但是打开该文件出现类似\u9489\u9489\u81EA\u5B9A\u4E49\u673A\u5668\u4EBA这样的数据,看也看不懂,也不是平常见到的......
  • git常用命令
    gitconfig--globaluser.name"username"gitconfig--globaluser.email"[email protected]"gitconfig--globalcredential.helperstoregitinit#创建仓库gitclonehttps://github.com/libgit2/libgit2mylibgit#克隆仓库,可额外指定目录名gitadd*.c......
  • 源代码管理工具GitHub介绍
    GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码......
  • 【IntelliJ IDEA】在idea中知道类名,查找类,展示类,快速查找某个类或方法在整个项目中
    背景:我想查看日志级别,知道类名,所以就用快捷键Ctrl+Shift+n查看。在IDEA 中的任何位置都可以使用此快捷键Ctrl+Shift+n或者麻烦点的,知道类名查找类:Ctrl+Shift+Alt+N; 哈哈,我知道你不会记麻烦的。PS:如果按下这些快捷键之后没有反应,第一反应就应该是快捷键冲突,比如你......
  • 【IntelliJ IDEA】idea常用快捷键汇总
    1、查看所有快捷键:Ctrl + J2、sout System.out.println();3、forifor(inti=0;i<;i++){}4、ititwhile(iterator.hasNext()){Objectnext=iterator.next();}5、itlifor(inti=0;i<list.size();i++){Objecto=list.get(i);}6、itarfor(......
  • 【Git】解决Untracked Files Prevent Checkout的问题
    本文目录一、背景描述二、问题原因三、解决方案3.1方案1--删除文件3.2方案2--提交这些文件3.3方案2--git命令切换分支一、背景描述使用的工具:Windows10+Idea+Git今天从Git服务器上通过GitBashHere(如下图所示),克隆下来一个新的项目,此时一般都是master分支。此时使用Idea......