目录
1 Git 分支概念
2 Git 分支基本操作
2.1 git branch查看与创建本地分支
2.2 git checkout切换分支
2.3 git merge合并分支
2.4 删除分支
3 解决冲突
1 Git 分支概念
Git 分支允许你从当前开发线上分离出来,进行独立的开发工作,而不会影响主分支的稳定性,意味着多人协同开发而互不影响。
在开发中,一般有如下分支使用原则与流程:
- master分支:线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
- develop分支:是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
- feature/xxxx分支:从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
- hotfix/xxxx分支:从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等
等。
2 Git 分支基本操作
2.1 git branch查看与创建本地分支
-
查看分支:
git branch
命令会列出本地仓库的所有分支,当前分支前面会有一个星号 (*) 标记。
git branch
- 创建分支:创建一个新分支,但不会自动切换到该分支。
git branch <branch-name>
查看与创建本地分支:
2.2 git checkout切换分支
- 切换分支: 切换到已存在的分支,如果分支不存在,Git会报错。
git checkout <branch-name>
- 创建并切换分支: 创建一个新的分支并立即切换到该分支:
git checkout -b <new-branch-name>
- 切换到最新的提交: 如果你想要切换到最新的提交,可以使用:
git checkout HEAD
- 切换到上一个分支: 如果你想要切换回上一个使用的分支,可以使用:命令
git checkout -
git checkout <branch-name>
命令由master分支切换到新建的dev01分支:
2.3 git merge合并分支
git merge
命令用于将两个分支的更改合并在一起,通常会将其他分支的更改合并回主分支(通常是 master
)。
以下是一些 git merge
的常用用法:
- 合并指定分支到当前分支: 在执行
git merge
之前,你需要切换到你想要更新的分支。比如,如果你想要更新主分支,你应该先切换到主分支:
先切换到主分支
git checkout master
然后其他分支合并进master分支
git merge feature-branch
- 合并所有最新分支到当前分支: 如果你想要合并所有分支的最新更改到当前分支,可以使用:
git merge --octopus
- 合并并关闭分支: 如果你想要合并一个分支并且删除它,可以使用
--squash
选项将所有更改合并为一个单一的提交:
git merge --squash feature-branch
使用git merge feature-branch
命令将dev01分支合并到master分支,其中(HEAD -> master, dev01)
具体含义如下:
-
HEAD:HEAD是一个指针, 表示当前Git正在指向的提交对象
-
-> master: 这个箭头表示HEAD当前指向的是
master
分支。 -
dev01:进行合并操作后,将
dev01
分支的更改合并到了master
分支。
2.4 删除分支
git branch -d
是Git命令的一个选项,用于删除已经完全合并的本地分支,这里的 -d
代表 --merged
。
- 删除已合并分支:这个命令会删除名为
<branch-name>
的分支,前提是这个分支上的所有更改都已经合并到了当前分支。
git branch -d <branch-name>
- 强制删除分支: 如果你想要删除一个分支,不管它是否已经完全合并,可以使用
-D
选项,它是--delete --force
的简写:
git branch -D <branch-name>
使用git branch -d <branch-name>
命令输出已经合并的dev01分支。
3 解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
1)尝试合并: 当你尝试合并两个分支,如果存在冲突,Git会停止合并过程并告诉你哪些文件存在冲突。
2)查找冲突文件: 使用以下命令找出存在冲突的文件:
git status
3)手动解决冲突: 打开存在冲突的文件,Git会在冲突区域插入特殊的标记,需要手动编辑文件,决定保留哪个版本的文本,或者可能需要结合两个版本的内容。
4)将解决完冲突的文件加入暂存区: 使用以下命令将解决冲突后的文件添加到暂存区:
git add <解决冲突后的文件>
5)提交到仓库: 一旦解决了所有冲突,并且将更改的文件加入到暂存区,可以进行一次新的提交来完成合并过程:
git commit