Git命令branch-分支

1、什么是分支

分支可以这样理解:比如你们走到一条路上,遇到了个三岔路口,每个路口有不同的风景,你们各走一条,约定1小时后在某地汇合,然后就各自出发了。

这里的三条分叉就可以理解为你们各自的分支,而等你们汇聚的时候就相当于把你们的分支进行了合并。

2、分支的常用操作

通常会有个默认的分支,叫做master。下面我们来看下关于分支的操作命令:

新建一个分支

git branch a

注意:通常新建分支都是在当前所在的分支进行的,即以上是基于master分支新创建了一个分支a,所以分支a的内容和master一样。

切换到分支a

git checkout a

如果把以上两部合并的话,即新建并自动切换到a分支

git checkout -b a

把分支a推送到远程仓库

git push origin a

如果远程分支想叫a2,就是重命名的话,执行

git push origin a:a2

但是强烈不建议这样做,这会导致混乱,难管理。最好是本地和远程的分支保持一致的名称。

查看本地分支列表

git branch

查看远程分支列表

git branch -r

删除本地分支

git branch -d  a

git branch -D a(强制删除)

删除远程分支

git push origin:a

把远程分支迁移到本地

git checkout a origin/a

把远程分支迁移到本地并切换到分支

git checkout -b a origin/a

3、常用的团队协作流程:Git Flow

Git Flow是一种比较成熟的分支管理流程,它的工作流程如下:

以下文字转载自:http://stormzhang.com/git/2014/01/29/git-flow/

第一次看上面那个图是不是一脸懵逼?跟我当时一样,不急,我来用简单的话给你们解释下。

一般开发来说,大部分情况下都会拥有两个分支 master 和 develop,他们的职责分别是:

master:永远处在即将发布(production-ready)状态
develop:最新的开发状态

确切的说 master、develop 分支大部分情况下都会保持一致,只有在上线前的测试阶段 develop 比 master 的代码要多,一旦测试没问题,准备发布了,这时候会将 develop 合并到 master 上。

但是我们发布之后又会进行下一版本的功能开发,开发中间可能又会遇到需要紧急修复 bug ,一个功能开发完成之后突然需求变动了等情况,所以 Git Flow 除了以上 master 和 develop 两个主要分支以外,还提出了以下三个辅助分支:

feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop

release: 准备要发布版本的分支, 用来修复 bug,基于 develop,完成后 merge 回 develop 和 master

hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop

什么意思呢?

举个例子,假设我们已经有 master 和 develop 两个分支了,这个时候我们准备做一个功能 A,第一步我们要做的,就是基于 develop 分支新建个分支:

git branch feature/A

看到了吧,其实就是一个规范,规定了所有开发的功能分支都以 feature 为前缀。

但是这个时候做着做着发现线上有一个紧急的 bug 需要修复,那赶紧停下手头的工作,立刻切换到 master 分支,然后再此基础上新建一个分支:

git branch hotfix/B

代表新建了一个紧急修复分支,修复完成之后直接合并到 develop 和 master ,然后发布。

然后再切回我们的 feature/A 分支继续着我们的开发,如果开发完了,那么合并回 develop 分支,然后在 develop 分支属于测试环境,跟后端对接并且测试的差不多了,感觉可以发布到正式环境了,这个时候再新建一个 release 分支:

git branch release/1.0

这个时候所有的 api、数据等都是正式环境,然后在这个分支上进行最后的测试,发现 bug 直接进行修改,直到测试 ok 达到了发布的标准,最后把该分支合并到 develop 和 master 然后进行发布。

以上就是 Git Flow 的概念与大概流程,看起来很复杂,但是对于人数比较多的团队协作现实开发中确实会遇到这么复杂的情况,是目前很流行的一套分支管理流程,但是有人会问每次都要各种操作,合并来合并去,有点麻烦,哈哈,这点 Git Flow 早就想到了,为此还专门推出了一个 Git Flow 的工具,并且是开源的:GitHub 开源地址:https://github.com/nvie/gitflow

简单点来说,就是这个工具帮我们省下了很多步骤,比如我们当前处于 master 分支,如果想要开发一个新的功能,第一步切换到 develop 分支,第二步新建一个以 feature 开头的分支名,有了 Git Flow 直接如下操作完成了:

git flow feature start A

这个分支完成之后,需要合并到 develop 分支,然而直接进行如下操作就行:

git flow feature finish A

如果是 hotfix 或者 release 分支甚至会自动帮你合并到 develop、master 两个分支。

时间: 2024-08-30 00:41:28

Git命令branch-分支的相关文章

使用git命令创建分支到团队项目

背景 在我们的团队中,我作为管理者,创建了一个叫HelloWorld的项目,大家各自在本地进行开发,将自己的工作贡献到我们的团队项目中.为了便于审核,我希望大家先将自己的贡献先放在属于自己的一个分支上,以后,你把你每次的贡献都放在这个分支.等我审核后,认为你的贡献是用心的.有价值,我再合并到主分支.这个主分支的所有内容就是我们进行团队开发最终的成果!是不是很有成就感!话不多说,关于git的使用背景和常用操作,小林老师已经给了大家博客链接.下面,咱们就开门见山,跟着我边做边学! Step1:我们先

在vsCode中用git命令合并分支

提交修改代码到本地仓库 $ git commit -m "修改的东西的描述"切换到master主分支上 $ git checkout master拉取主分支上面的代码 $ git pull origin master切换到自己的分支 $ git checkout lbh将master主分支上的代码合并到当前分支 $ git merge master点在下图中红圈圈住的东东,查看冲突代码 将本地的 lbh 分支推送至远端的 lbh分支,如果没有就新建一个 $ git push origi

git(osChina上分支的使用)

使用osChina分支的创建分为两种 1.直接在osChina上创建 需要pull否则查看git的状态是不包含改分支的; git pull <git地址/git简称> <分支名> 2.使用git命令创建分支 git branch <分支名> 需要push否则查看osChina的分支的是不包含改分支的; git push <git地址/git简称> <分支名> 查看git下的所有分支 git log --oneline --decorate --o

git branch 分支

查看当前已有的分支 1 git branch 2 3 //如果没有创建过分支的话,应该只有一个主分支,master 4 //*号表示当前所在分支 5 *master 在修改代码的时候,应该新建一个分支,在新分支上进行修改 1 //git branch "分支名" 2 git branch testing 3 4 git branch//新分支testing创建完成 5 *master 6 testing git branch之后发现当前还是在master主分支上,所以需要切换到新建的分

Git branch 分支与合并分支(转)

查看当前有哪些branch [email protected] xmrobotium$ git branch * master 新建一个branch xm2.x [email protected] xmrobotium$ git branch xm2.x 切换到一个branch [email protected] xmrobotium$ git checkout xm2.x 新建并且切换到该branch,例: xm2.x [email protected] xmrobotium$ git che

Git新建本地分支与远程分支关联问题:git branch --set-upstream【转】

本文转载自:http://blog.csdn.net/netwalk/article/details/21088405 Git新建本地分支与远程分支关联问题:git branch --set-upstream git在本地新建分支, push到remote服务器上之后,再次pull下来的时候,如果不做处理会报以下提示: [html] view plain copy You asked me to pull without telling me which branch you want to m

Git flow的分支模型与及经常使用命令简单介绍

Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章"A successful Git branching model"对这一分支模型进行了描写叙述.其示意图例如以下: 上图从左往右看,分别为 - 时间轴.从上往下时间在流逝 - feature分支(玫红).图上有两个feature分支,在这个分支上,进行功能特性的开发 - develop分支(黄色).git flow的主分支.feature分支和release分支都会将代码合并到此分支上 -

Git新建本地分支与远程分支关联问题:git branch --set-upstream

Git新建本地分支与远程分支关联问题:git branch --set-upstream git在本地新建分支, push到remote服务器上之后,再次pull下来的时候,如果不做处理会报以下提示: You asked me to pull without telling me which branch you want to merge with, and 'branch.production.merge' in your configuration file does not tell m

【git】idea /git bash命令 操作分支

1.需求 因为目前要对项目做一些改动,而项目又即将上线,这些新的改动又不需要一起上线,所以这个时候需要在原有的master分支上重新拉出一个分支进行开发. 2.分支操作 打开git bash工具→切换到本地项目所在目录(cd d:  / cd cxlwork  /  cd ..) 查看目前git状态: $ git status 查看所有分支 $ git branch -a 分支前带*号代表你目前所在的分支 查看本地分支 $ git branch 分支前带*号代表你目前所在的分支 查看远程分支 $

Git branch 分支与合并分支

Git branch 分支 查看当前有哪些branch [email protected] xmrobotium$ git branch * master 新建一个branch xm2.x [email protected] xmrobotium$ git branch xm2.x 切换到一个branch [email protected] xmrobotium$ git checkout xm2.x 新建并且切换到该branch,例: xm2.x [email protected] xmrob