GIT 分支

Posted 月墨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIT 分支相关的知识,希望对你有一定的参考价值。

什么是分支

讲分支前, 我们看一下Workflow的一个工作流程.什么是Workflow呢?

workflow

工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

工作流管理系统(WfMS)是处理工作流的电脑软件系统,其主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

附: 百度百科

  • Git Workflow

Git Workflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。

Git Wokrflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。

技术分享

以上所构建出来的就是使用分支来构建的.

创建分支

现在我们就使用下面的命令去创建一个分支. 这个命令只是创建并没有切换到新创建的分支上. git仓库初始化创建的时候, 会为我们自动创建一个master的主分支.

1 $ git branch branch-name

可以从任何的地方创建分支, 并切换到新创建的分支上.

1 $ git checkout -b branch-name

显示分支

如果我们想要显示当前git仓库中有多少个分支.

1 $ git branch -av

分支切换

如果我们想从A分支切换到B分支使用下面的命令.

1 $ git checkout branch-name

删除分支

如果我们要删除一个分支, 那么我们一定要站在另一个分支上去删除它. 也就是说不能删除当前所在的分支.

1 $ git branch -D branch-name

合并分支 

merge

我们将develop分支开发的提交, 合并到master分支上.

1 $ git checkout master
2 $ git merge develop

如果出现冲突的时候可以使用mergetool, 解决冲突.

1 $ git mergetool

rebase

现在我们决定把 develop 分支的变化也包含进来。我们可以直接把 develop 分支衍合到 master,而不用手工切换到 develop 分支后再执行衍合操作 — git rebase [主分支] [特性分支] 命令会先取出特性分支 develop master 上重演:

1 $ git rebase master develop

cherry-pick

cherry-pick取出提交,然后将其添加到当前分支上, 你当前处在那个分支上就是放到相应的分支上.

1 $ git cherry-pick <commit-id>

如果出现冲突,就正常解决冲突, 然后进行重新提交.

什么标签

标签是为了更方便地参考提交而给它标上易懂的名称。Git可以使用2种标签:轻标签和注解标签。打上的标签是固定的,不能像分支那样可以移动位置。

创建标签

使用tag命令来添加标签. 是要创建标签的名称.

1 $ git tag <tag-name>

还可以根据commit ID创建标签.

1 $ git tag <tag-name> <commit ID>

显示tag标签信息

如果没有输入要创建标签的名子, 它就会显示现在所有的标签.

1 $ git tag

如果在log命令添加 –decorate选项执行,可以显示包含标签资料的历史记录。

1 $ git log --decorate

可以显示从tag开始的所有提交信息.

1 $ git log tag-name

可能显示tag的提交信息和提交的内容及patch.

1 $ git show tag-name

checkout 分支

可以根据tag的标记来进行创建分支.

1 $ git checkout -b branch-name tag-name

删除标签

若要删除标签,在tag命令指定 -d选项执行。

1 $ git tag -d <tagname>
 

以上是关于GIT 分支的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 Git 仓库中的历史提交记录

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

git 怎么提交合并分支的部分代码

Git 拉取远程代码