Git
-
定义
- 它是分布式版本控制工具,主要用于管理开发过程中的源代码文件(如:Java类、xml文件、html页面等),在软件开发过程中被广泛应用
-
作用
- 代码回溯:快速回到某一代码历史版本
- 版本切换:同一个项目有等多个版本,可回到某个版本进行操作
- 多人协作
- 远程备份
-
Git仓库分类
- 本地仓库:开发人员自己电脑上的Git仓库
- 远程仓库:远程服务器上的Git仓库
-
Git安装
-
直接官网下载安装一路next即可(可自行更改安装位置),然后再桌面右键,若出现,如图所示两个菜单则说明安装成功
-
-
Git卸载
- 找到自己安装Git的目录,双击unins000.exe即可卸载
Git代码托管
- 作用
- 搭建Git远程仓库
- 代码托管服务常用的有
- GitHub:是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,所以得此名
- 码云(Gitee):是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云的速度会更快
- GitLab:是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务
- BitBucket:是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户
码云代码托管服务
-
使用码云操作流程如下
-
注册账号,登陆码云
-
码云上新建仓库(就是创建远程仓库)
-
.gitignore文件是定义当前仓库中的哪些文件不需要Git管理(也就是说你不要管它,不要去动那些不需要Git管理的文件)
-
创建完成的仓库都会有一个唯一的远程地址,来供其他成员对其进行操作
-
邀请其他用户称为仓库成员
-
-
创建远程仓库((以博主为例,创建一个名为商城项目的仓库))后,该远程仓库的页面为空,如图一所示,创建完远程仓库后一般都需要初始化readme文件(对仓库进行说明),初始化该文件后会刷新在gitee上的远程仓库,会出现一个master分支,而readme文件就在该分支下,如图二所示。
注意: 本地仓库与远程仓库进行通信时就需要这个master分支
获取Git仓库
-
本地初始化一个Git仓库步骤
-
在任意目录下创建一个空目录作为本地Git仓库
-
进入该目录中单击右键打开Git bash窗口,执行
git init
命令即可 -
若在当前目录中看到.git目录(该目录为隐藏目录)则说明本地Git仓库创建成功
-
-
从远程仓库克隆以此来获得一个本地Git仓库
-
可通过Git提供的命令
git clone 远程仓库地址
从远程仓库克隆,将远程仓库克隆到本地,此处会在码云上随机选取一个项目进行举例-
进入项目页面单击
克隆/下载
按钮,弹出界面,复制仓库地址 -
在任意目录下创建一个空目录作为本地Git仓库,然后进入该目录中单击右键打开Git bash窗口,执行
git clone https://gitee.com/guojongg/manci.git
命令即可
-
-
Git常用命令
工作区、暂存区、版本库
- 工作区:包含.git目录的目录就是工作区,也称为工作目录,主要用于存放开发的代码
- 暂存区:.git目录中有很多文件,其中有一个index文件就是暂存区,也可叫做stage。暂存区是一个临时保存修改文件的地方
- 注意:若仓库为空时,则没有index文件,除非仓库非空且对仓库代码有所修改时才会出现index文件
- 版本库:.git隐藏目录就是版本库,版本库中存储了很多配置信息、日志信息、文件版本信息等等。(自己不要去东.git目录中的东西)
-
Git工作区中文件的状态分为两类
-
untracked未跟踪状态------未被纳入版本控制,即这些文件是新创建的,Git还没开始跟踪它们
-
tracked已跟踪状态------被纳入版本控制,Git开始跟踪
- Unmodified未修改状态:文件已经被Git管理,但是未修改文件
- Modified已修改状态:文件已经被Git管理,且已修改文件,但还没有被添加到暂存区
- Staged已暂存状态:文件已经被Git管理且已修改的文件已经被放到了暂存区,但还没有被提交到仓库
- Committed已提交状态:暂存区的所有文件已被提交到工作区,此时没有待处理的更改,工作目录是干净的
-
注意:文件的状态会随着我们执行Git的命令发生变化,示例如下
-
我在刚创建的本地Git仓库(仓库为空)中创建一个文件hello.xml,然后在该目录下右键打开Git Bash,输入命令git status来用于查看当前工作目录的状态
-
git add <file>
来将文件的当前状态添加到暂存区,然后再次使用git status命令来查看当前工作目录状态
-
-
本地仓库操作
-
普通命令
命令 解释 git status
查看文件状态(例子详见工作区、暂存区、版本库) touch 文件名
本地仓库创建文件 mkdir <-p> 目录
创建目录,加上 -p
代表创建多级目录cd 目录
进入目录(可直接进多级目录) git add <file>
将文件的修改加入暂存区(例子详见工作区、暂存区、版本库) git reset <文件名>
将暂存区的文件取消暂存 git reset --hard 版本号
切换到项目指定的版本 git commit
将暂存区的文件修改提交到版本库 rm <文件名>
从本地仓库中删除文件,该删除操作会被存在工作区 git rm <文件名>
从本地仓库中删除指定文件,并将该删除操作提交到暂存区 git rm -f <文件>
删除文件 git rm <-r> <目录名>
从已提交到本地仓库的版本区中完全删除指定目录,并将该删除操作提交到暂存区。若加上-r则代表删除该目录中是所有文件及其子目录和子目录中的文件 git restore <文件/目录名>
恢复工作区中的文件内容 git restore --staged <文件/目录名>
将被删除的文件或目录转移到工作区 git log
查看项目日志 git clone
从远程仓库克隆一个完整的 Git 仓库到本地。克隆操作会将远程仓库的所有历史记录、分支和文件复制到本地计算机上,创建一个新的本地仓库。 -
示例1:未修改hello.xml文件
-
示例2:修改hello.xml文件:打开该文件随便写点东西然后在该文件所在的目录下右键→Git Bash
-
示例3:文件提交后可查看日志并回到项目指定版本
-
创建文件、写入数据、提交到版本库
- 操作步骤
- 创建本地仓库
touch <文件名>
创建文件vim <文件名>
按会回车进入新的命令界面,然后按i
即可给该文件写入数据,数据写入完毕后按ESC
退出文件编辑状态,然后按:wq
(作用是保存编辑并退出)git add <文件名>
将该文件放到暂存区git commit -m "init 文件名"
<文件名>将该文件推送到暂存库
创建文件后删除文件、恢复文件—针对于未被提交到版本区的文件
未被提交到版本区的文件不能用
git rm <文件名>
来删除
-
rm <文件名>
------删除文件并将该删除操作放到工作区-
创建的文件若在工作区,并未提交到缓存区时只能只能利用该命令删除,利用
git rm <文件名>
删除时则会失败报错(原因:该命令只能删除已经提交到暂存区的文件,对在工作区的文件无法进行删除操作)。- 若该文件在工作区删除,则无法恢复!!!
-
若该文件在暂存区,利用
rm <文件名>
删除时被删除的文件会在工作区,此时可以利用git restore <文件>
恢复
-
-
git rm -f <文件名>
------彻底删除文件-
新创建的文件在暂存区时才可用该方法删除,且删除后,被删除的文件不会存在于工作区、暂存区,所以该文件不能被恢复
-
创建文件后删除文件、恢复文件—针对于被提交到版本区的文件
-
rm <文件名>
------删除文件并将该删除操作放到工作区rm restore <文件名>
------恢复在工作区的文件
-
git rm <文件名>
------从本地仓库中删除指定文件,并将该删除操作提交到暂存区git restore --staged <文件名>
------将利用git rm <文件名>
命令所删除的文件转移到工作区- git restore <文件名>------恢复在工作区的文件
-
git rm -f <文件名>
------删除文件git restore --staged <文件名>
------将利用git rm <文件名>
命令所删除的文件转移到工作区- git restore <文件名>------恢复在工作区的文件
创建目录、删除目录、恢复目录
手动创建一个名为a的目录,该目录下有两个子目录且有一个test.txt文件,且该目录已被放到版本库,如图所示
-
git rm -r <目录名>
------从已提交到本地仓库的版本区中完全删除指定目录及其子目录和文件,并将该删除操作提交到暂存区。git restore --staged <目录名>
------将被删除的目录从暂存区转移到工作区git restore <目录名>
------将被删除的目录从工作区恢复
Git全局设置
-
Git全局设置(桌面右键→Open Git Bash here)
-
安装完Git后首先要设置用户名和email地址,因为每次Git提交都会使用该用户信息
-
设置用户信息(用户信息自己可随意设置)
git config --global user.name "自己的用户名" git config --global user.email "自己的邮箱地址"
-
查看配置信息
git config --list
-
-
远程仓库操作
命令 | 解释 |
---|---|
git remote | 查看所有远程仓库并显示其名称 |
git remote -v | 显示所有远程仓库的 URL |
git remote add <name> <url> | 为本地仓库添加远程仓库并可选择是否为该远程仓库指定一个名字,url是远程仓库的地址 |
git remote rename <old_name> <new_name> | 重命名已经存在的远程仓库 |
git remote remove <name> 或 git remote rm <remote_name> | 移除一个远程仓库(remote_name为git为远程仓库设置的名称) |
git remote show <name> | 显示指定远程仓库的详细信息,如 URL 和跟踪分支 |
git clone <remote_repository_url> <local_directory> | 克隆指定的远程仓库到本地指定目录下 |
git clone -b <branch_name> <remote_repository_url> | 克隆远程仓库的指定分支到本地 |
git clone --depth <depth> <remote_repository_url> | 只克隆指定深度的历史记录。这个选项可以用于创建一个浅克隆,仅包含最新的提交记录,可以减少克隆所需的时间和空间 |
git clone --recursive <remote_repository_url> | 克隆远程仓库时同时克隆其子模块(如果有) |
git pull <remote-name> <branch_name> | 用于从远程仓库拉取(fetch)最新项目文件并合并(merge)到本地仓库的命令。它实际上执行了两个操作:git fetch 和 git merge |
git push <remote_name> <branch_name> | 将本地仓库的提交推送到远程仓库。<remote_name> 是远程仓库的名称(指git给远程仓库起的名称,默认是 origin ),<branch_name> 是你要推送的本地分支名称 |
git remote
------查看远程操作、添加远程仓库、移除远程仓库
-
将远程仓库克隆到本地时,本地仓库的目录名字即为远程仓库的名字,但是git会将远程仓库的名称默认设置为origin,方便你在进行推送和拉取等操作时使用,如图所示
-
从本地初始化的git仓库执行
git remote
以及git remote -v
命令时,并不会显示git对其的默认名称以及拉取url和推送url,原因是:这是通过本地创建的git仓库,并不是通过远程仓库克隆来的本地仓库,所以并没有与远程建立连接,也就没有任何信息,此时我们可以为其添加远程仓库,这样后期就可将本地仓库中的项目上传到远程仓库,如图所示 -
注意以上两种获取git仓库的方式在与远程仓库建立连接后也都可以移除与远程仓库建立的连接,此处以本地初始化的仓库为例,如图所示
克隆远程仓库、推送到远程仓库
-
克隆仓库命令格式:
git clone remote_repository_url
,此处以博主创建的远程仓库(名为:商城项目为例)-
将名为商城项目的远程仓库克隆到本地
-
将远程项目克隆到本地所产生的本地仓库会默认与远程仓库建立连接
-
-
将本地仓库推送到远程仓库 ------
git push <remote_name> <branch_name>
注意:将本地仓库推动到远程仓库时必须先将修改的文件先提交到暂存区,然后提交到本地仓库的版本库,最后才能提交到远程仓库
- git push还支持的一些命令选项
-u
或--set-upstream
:将本地分支与远程分支进行关联,以后可以直接使用git push
推送代码。-f
或--force
:强制推送,即使远程仓库中有与本地仓库不同的提交历史,也会覆盖远程分支上的内容。慎用这个选项,因为它可能会导致数据丢失或冲突。--all
:推送所有分支到远程仓库。
- 示例:在master分支中创建一个新文件test.txt并随便写一点内容,然后提交到本地仓库(要先将该文件提交到暂存区然后提交到本地仓库),最后推送到远程仓库。随后在本地仓库中的test.txt文件中再随便写点东西(即更新该文件),此时就需要重新将该文件提交到本地仓库,然后推送到远程仓库
- 注意事项
- 第一次将本地仓库推送到远程仓库时需要进行身份认证,之后就不需要再次认证
- 若想要将本地仓库推送到远程仓库则必须是该仓库的成员,且有权限
- git push还支持的一些命令选项
git pull
------从远程仓库拉取更新后的项目
-
假设现在有小李和小郭两个人共同操作商城项目(在电脑上克隆两个商城项目的远程仓库来模拟两人),此时假设小李对test.txt文件进行了修改(更改为:12345你好),则小李需要将该文件上传到远程仓库,然后小郭在从远程仓库拉取更新后的项目,这时小郭才能看到更新后的文件
-
若当前本地仓库不是从远程仓库克隆来的,而是本地创建的仓库,并且该仓库中存在文件
-
此时若将该本地仓库推送到远程仓库:则先需要为本地仓库添加远程仓库,然后先将远程仓库拉取到本地,与本地项目合并更新后,再将本地仓库推送到远程仓库,否则会报错
-
但是单纯利用
git pull <remote-name> <branch_name>
命令从远程仓库拉取文件时也会报错,且报错为:fatal:refusing to merge unrelated histories
-
该问题解决方式:git pull命令后加入参数
--allow-unrelated-historie
,作用是允许用户在合并两个没有共同历史的分支时强制进行合并操作 -
即
git pull <remote-name> <branch_name> --allow-unrelated-histories
,输入该命令并回车后进入一个新的命令窗口,该窗口是为了编辑meaasge,在该窗口中我们是无法直接输入的,需要输入一个i,在出现-- INSERT--
后才可进行输入,输入完信息后按ESC
即可退出编辑,退出编辑后-- INSERT--
会消失,然后输入:wq
回车即可退出该新的命令窗口,退出后即可从远程仓库完成拉取项目 -
将远程仓库拉取到本地后,虽然远程仓库的项目内容均已拉取到本地,但是本地仓库中原本的文件hello.txt并未在远程仓库,此时还需要将本地仓库推送到远程仓库,才能完成最终的仓库项目同步
-
-
分支操作
-
定义
- 可以把工作从开发主线上分离开来,以免影响开发主线。同一个仓库可有多个分支,各个分支之间相互独立,互不干扰
-
分支命令(需进到本地仓库内在git bash中执行)
命令 解释 git branch
查看本地仓库中所有分支,且当前所在的分支会被用 *
标记(注意:当前所在分支颜色会显示为绿色,而本地仓库中的其他分支则是白色)git branch -r
查看远程仓库所有分支 git branch -a
查看本地仓库和远程仓库所有分支,且在本地仓库中当前所在的分支会被用 *
标记git branch <branch_name>
在当前的提交位置创建一个名为branch_name的新分支(该命令只会创建分支并不会切换到新创建的分支上) git branch -d <branch_name>
删除名为branch_name的分支(注意:若要删除的分支还没有合并到其他分支中,Git会警告并拒绝删除) git branch -m <old_branch_name> <new_branch_name>
重命名分支 git checkout <branch_name>
或git switch <branch_name>
切换到名为branch_name的分支上 git push <remote_name> <local_branch_name>:<remote_branch_name>
将本地分支的更新推送(push)到远程仓库分支。 <remote_name>
:Git为远程仓库定义的远程仓库名称;<local_branch_name>
:要推送的本地分支的名称;<remote_branch_name>
:要推送到远程仓库的分支的名称。如果远程分支不存在,则会创建一个新的分支git merge <branch_name>
合并分支:将名为 <branch_name>
的分支的更改合并到当前所在的分支中(注意:合并过程会将两个分支的更改结合起来,并生成一个新的提交来记录合并的结果。)git push <remote_name> --delete <分支名>
删除远程仓库中的指定分支
示例
在Gitee上重新创建一个远程仓库,名为:rpeoDemo,并设置模板为readme文件,然后创建该仓库,仓库创建成功后如图二所示,最后将该远程仓库克隆到本地(命令略,克隆方法详见远程仓库操作),如图三
注意:当你在本地仓库中执行
git clone
命令克隆远程仓库时,Git会自动为你创建一个远程跟踪分支,其名称是origin/HEAD
,并将其指向远程仓库的默认分支。这样做的目的是为了让Git知道远程仓库的默认分支是什么,从而在执行一些操作时,如git pull
,可以自动地拉取或推送到默认分支(即主分支master或默认开发分支main)。
查看、创建、切换、推送分支(以示例为基础进行操作)
-
查看分支
-
创建分支、切换分支、并将本地分支推送到远程仓库分支
-
本地仓库创建分支并将分支提交到远程仓库后,若在本地仓库的三个分支中分别创建文件且都提交到本地仓库的版本区后都推送到了本地仓库 ,则这时你利用git checkout命令切换分支时,本地仓库也会跟着切换分支;否则不会随着命令切换分支
- 在三个分支中分别创建文件并推送到远程仓库,由图三可知推送成功
-
完成以上命令后,你在本地仓库中使用
git checkout <branch_name>
命令切换到某个分支时,本地仓库所在的目录也会随着切换到对应的分支,如图所示
合并分支(以示例为基础进行操作)
-
将本地仓库中的分支b1和b2均合并到本地仓库的主分支master下
- 首先将分支切换到本地分支,然后利用
git merge <branch_name>
命令首先将b1分支合并到主分支下- 注意输入完合并命令时,会跳转到新的命令窗口界面(其实就是跟文件编辑界面一样),此时不要写东西(即合并信息),直接
:wq
保存并退出即可合并成功
- 注意输入完合并命令时,会跳转到新的命令窗口界面(其实就是跟文件编辑界面一样),此时不要写东西(即合并信息),直接
- 主分支合并b2分支也是同样道理,两个分支合并到主分支后,两个分支中的所有内容就都会到主分支中
- 首先将分支切换到本地分支,然后利用
-
问题
-
若修改不同分支中相同的文件,再次进行分支合并时就会出现冲突(以主分支和b1分支中的文件b1.txt为例)
- 该冲突为文件内容冲突,因为你修改了两个文件中的内容,此时需要手动去处理合并后的b1.txt文件
- 处理完成后该文件处于工作区,需要将其推送到本地仓库,在利用
git commit -m
命令推送时会报错cannot do a partial commit during a merge(在合并过程中不能进行部分提交)
,解决方法是在该命令最后加上-i
即可
-
标签操作
-
定义
Git中的标签指的是某个分支在某个特定时间点的状态。通过标签可以方便的切换到标记时的状态
- 该功能可用来标记发布结点(v1.0、v1.2等),如下mybatis-plus标签所示
-
命令
命令 解释 git tag
列出已有标签 git tag <lable_name>
创建标签 git push <remote_name> <lable_name>
将标签推送至远程仓库 git checkout -b <branch_name> <lable_name>
检出标签(即新创建一个名为 branch_name
的分支,该分支保存名为lable_name
标签那时刻的代码(即保存那个时刻的项目版本))。该命令执行成功后本地仓库会自动切换到名为branch_name
的分支,且该分支为对应名为lable_name
标签那个时刻的项目代码
示例
以在分支操作中的repo-demo仓库最终版为例(详见图1、2、3)
-
查看、创建、推送标签
-
检出标签
IDEA中配置Git
-
IDEA中配置Git
-
步骤:File→Settings→Version Control→Git→Path to Git executable(配置文件路径)
IDEA中使用Git
获取Git仓库
-
IDEA中使用Git获取仓库的方式一 ------ 本地初始化仓库
-
创建一个基础的Maven项目模板,然后 VCS(即版本控制) → Create Git Repository(即创建Git仓库)
-
在弹出的新窗口中选则当前项目目录(即MavenDemoOne)作为Git仓库目录
-
创建完成后可看到该项目的目录中出现.git隐藏文件代表该项目已被作为Git仓库,此时IDEA界面会出现Git的操作按钮,如图二所示
-
从上图中可看出本地初始化仓库后会有两个文件为红色,原因是这个两个文件在工作区,将其提交到暂存区后会变为绿色,最终推送到本地版本库后会变为黑色
-
-
IDEA中使用Git获取仓库的方式二 ------ 从远程仓库克隆到已有项目中
-
创建一个基础的Maven项目模板,然后 VCS(即版本控制) → Get from Version Control
-
-
IDEA中使用Git获取仓库的方式三 ------从远程仓库克隆到新建项目中
-
Get from VCS → 在弹出界面输入对应远程仓库的url并设置克隆到本地的位置目录(如图一所示),最后单击Clone即可克隆成功(如图二所示)
-
-
从远程仓库克隆成功时会有一个
.gitignore
文件,它的作用是定义当前仓库中的哪些文件不需要Git管理(也就是说你不要管它,不要去动那些不需要Git管理的文件)
本地仓库的操作
-
将文件加入暂存区
-
自动加入到暂存区—在你创建java文件时会自动弹出对话框来让你添加到暂存区
-
手动加入到暂存区------右键java文件→Git→Add即可加入到暂存区
-
已加入到暂存区的文件会变为绿色
-
-
将暂存区单个文件提交到版本库
-
右键要提交的文件→Git→Commit File,如下图所示
-
IDEA左侧仓库项目目录变为如图所示,跟着图中步骤操作即可完成提交
-
提交完成后,已在版本库的文件会变为黑色
-
注意:若对已提交到版本库的文件未作任何更改,此时则无法提交
-
-
将暂存区多个文件提交到版本库
-
右键要提交的文件所在目录→Git→Commit File,如下图所示
-
IDEA左侧仓库项目目录变为如图所示,跟着图中步骤操作即可完成提交
-
提交完成后,已在版本库的文件会变为黑色
-
注意:若对已提交到版本库的文件未作任何更改,此时则无法提交。与提交单个文件不同的是它的Commit Directory仍可正常选中(如图一所示),但是在提交页面不会显示未作更改的文件,也就意味着无法提交(如图二所示)
-
-
查看日志
-
单击IDEA左下角的图标即可显示所有版本,如图所示
-
-
注意
- 在IDEA中你对已提交到暂存区的文件进行修改后,不需要先将其从工作区重新加入到暂存区,因为IDEA会自动将修改后的文件从工作区加入到暂存区
- 若想要将已加入到暂存区的更改后的文件提交到版本库,只需要直接提交即可
远程仓库的操作一
-
查看并添加远程仓库
-
右键本地仓库项目名箭→Git→Manage Remotes,此时即可在弹出的Git Remotes框中看到本地仓库所关联的远程仓库,若无关联的远程仓库,单击
+
即可添加远程仓库,如图所示 -
注意:一个本地仓库可对应多个远程仓库
-
此处以与博主的远程仓库建立关联为例来继续后续的演示,如图所示
-
-
推送至远程仓库
-
右键本地仓库项目→Git→Push (如图一所示) 或者IDEA最上方master → Push(如图二所示)
-
然后会弹出新框,单击Push Anyway按钮即可推送成功
-
-
提交到本地版本库的同时并推送至远程仓库
-
打开Commit界面,右下角有个Commit and Push按钮,单击即可提交的同时将其推送到远程仓库,如图所示
-
-
从远程仓库拉取方式一
-
右键本地仓库的项目→ Git→Pull→选中要拉取的远程仓库及对应分支单击Pull即可拉取成功
-
-
从远程仓库拉取方式二
-
选中IDEA界面最上方的master→Update Project(如图一所示),在弹出的框中选中第一个,然后单击OK即可拉取成功(如图二所示)
-
远程仓库的操作二
在远程操作一中只是正常演示了几个重要过程的操作,最终并未运行成功,原因是:
当前本地仓库MavenDemoOne不是从远程仓库克隆来的,而是本地创建的仓库,并且该仓库中存在文件此时若将该本地仓库推送到远程仓库:则先需要为本地仓库添加远程仓库,然后先将远程仓库拉取到本地,与本地项目合并更新后,再将本地仓库推送到远程仓库,否则会报错
-
简略步骤
-
将本地仓库中未在版本库的文件推送到版本库(步骤略)
-
在本地仓库目录下打开Git Bash,输入
git pull origin master --allow-unrelated-histories
来将两个没有共同历史的分支进行强制合并操作 -
然后即可在IDEA中通过将本地仓库推送到远程仓库的步骤,完成最终的仓库项目同步,完成后Gitee上如图所示同步成功
-
IDEA中的分支操作
-
查看分支并创建分支
-
方式一:如图所示
-
方式二:如图所示
-
方式三:单击IDEA顶部的master按钮即可显示分支
-
以上三种方式创建分支会自动切换到所创建的分支,因为创建的分支是基于master分支创建的,所该分支中项目内容与master主分支中项目内容是一样的,如图所示
-
-
切换分支
-
将分支推送到远程仓库(以b1分支为例),如图一、图二所示
-
合并分支(举例说明)
-
在b1分支下创建一个新的类TestControllerFour,并将其推送到本地的版本库,然后推送到远程仓库的b1分支,推送成功后如图所示
-
切换为master分支,如图所示
-
将b1分支合并到master分支中,如图一、图二所示
-