idea中git分支、合并与使用

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

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

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

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

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

2、新建分支

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

  

  这是一个简单提交历史

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

  

  填写分支名称

  

  在iss53分支上开发,如下

  

  将分支推送到远程仓库

  

  点击push推送到远程仓库

  

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

  

  分支的创建与提交完成!

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

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

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

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

  idea上操作如下:

  

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

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

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

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

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

  

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

  

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

  

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

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

  首先切换到master

  

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

  

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

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

  

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

  删除本地仓库分支hotfix

  

  删除远程仓库分支hotfix

  

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

  回到iss53分支上

  

  当前git分支结构如下图:

  

  继续在分支iss53上写代码

  

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

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

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

  

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

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

  完美!

感谢您的阅读,扫描下方二维码,获取更多资料,如果您觉得阅读本文对您有帮助,请点一下 “推荐”按钮, 您的“推荐”将是我最大的写作动力!
欢迎各位转载,但必须在文章页面中给出作者和原文链接!

原文地址:https://www.cnblogs.com/wfd360/p/10891314.html

时间: 2024-10-08 05:24:51

idea中git分支、合并与使用的相关文章

Git分支合并冲突解决(续)

接Git分支合并冲突解决,在使用rebase合并冲突情况下,如果不小心,执行完add后执行了commit,此时本地仓库HEAD处于游离态(即HEAD指向未知的分支),如何解决? 解决方法 (1)此时,分支处于 无分支 状态,创建并切换到新分支(git checkout -b conflict),从而解决HEAD游离状态: (2)放弃此次rebase操作(git rebase --abort): (3)在dev分支上merge新分支,出现冲突(git merge conflict): (4)冲突修

git分支合并、撤销;git修改已push的commit信息; git 撤销操作;

git分支合并 1.分支代码提交 2.git branch 查询本地分支 3.git checkout 分支名1 切换分支到需要合并的分支上 4.git merge 分支名2  //选择要合并到 分支名1 的分支名2 eg: 如果develop_screen分支合并到develop分支上,这个时候切换到develop分支上, git merge develop_screen 5.合并之后可能会有冲突,可用git status 查看冲突代码 <<<<<<<  ===

Git 分支合并

理解核心 Git最初只有一个分支,所有后续分支都是直接或间接的从这个分支切出来的. 在任意两个分支上,向前追溯提交记录,都能找到一个最近的提交同时属于这两个分支,这个提交就是两个分支的分叉节点 分支合并,就是把其它分支相对于分叉节点发生的变化合并到当前分支中. Git合并(merge)的是变化! 假设情景 时间点1:两个分支master和dev,现在这两个分支完全一样,处在同一个提交(commit)上,内容含A.B.C.D四部分. 时间点2:dev上开发新内容,不断修改提交,最后dev分支的内容

Git分支合并选择

用Git进行多人协作开发时,必然会合并代码,解决冲突.然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦. Git上合并代码有git merge 以及 git rebase 两种方式.下面将深入两者的用法以及对两者的适用场景作个总结. 前置知识点 Master分支:首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布.这个分支被称为Master分支: Develop分支:主分支

git 分支 合并

Git如何进行分支管理? 1.创建分支      创建分支很简单:git branch <分支名> 2.切换分支      git checkout <分支名>      该语句和上一个语句可以和起来用一个语句表示:git checkout -b <分支名> 3.分支合并      比如,如果要将开发中的分支(develop),合并到稳定分支(master),      首先切换的master分支:git checkout master.      然后执行合并操作:g

Git分支合并

当我们用Git协同工作时,通常是有多条分支的,例如,master,dev,feature1等.master分支是主分支,是我们最重要的分支,dev分支是开发分支,在dev分支上完成开发工作的,如果dev开发完毕了,就得用master分支去合并dev分支.这个时候就需要merge操作了. 下面就让我们了解一个完成的开发到合并的流程. 1.建立新的分支dev,创建新文件abab.txt,提交. $ git checkout -b dev Switched to a new branch 'dev'

Git 分支合并冲突及合并分类

分支合并冲突 ##创建分支datagrand git checkout -b datagrand Switched to a new branch 'datagrand' git branch -a master \* datagrand ##在datagrand分支上创建文件 echo "this is git file!" > read.txt git add read.txt git commit -m "add a new file" git push

Git分支,合并,切换分支的使用

1.创建合并分支 在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支. 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向前移动一步,这样,随着你不断提交

图文:eclipse中SVN分支合并到主干

在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支合并到主干,首先需要切换到主干. 在项目上面点右键,选择Team — 切换,URL地址为主干的访问路径. 2. 在项目上面点右键,选择合并,选中“merge two different trees”. 3. 在接下来的界面中选择如下: From的路径填写主干的访问路径.在下面的版本选择中可以选择HE