Git学习-分支管理

288 阅读4分钟

「这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

作者:汤圆

个人博客:javalover.cc

前言

分支管理指的是开发时,创建多个分支,然后在不同的分支进行开发管理,互不影响;

等到分支开发完成,再合并到主分支;

如果没有分支,那么代码还没写完就提交,会导致别人拿到的代码是不完整的;但是如果不提交,那么代码就有丢失的风险;

所以分支的好处很明显,就是代码的安全性得以提高,各个开发人员之间的代码互不干扰。

目录

  1. 创建分支
  2. 切换分支
  3. 提交分支
  4. 合并分支
  5. 删除分支
  6. 快捷方式

正文

1. 创建分支

创建分支的命令:git branch <branch name>

查看分支的命令:git branch;master前面有个*号,表示当前在master分支

PS D:\branch-demo> git branch dev
PS D:\branch-demo> git branch
  dev
* master

分支的示意图如下所示:可以看到,当前的Head指向的是master分支,dev和master指向同一个节点

image-20211110175608551

2. 切换分支

接下来,我们切换到dev分支

切换分支命令: git switch dev

PS D:\branch-demo> git switch dev
Switched to branch 'dev'

切换分支后 的示意图如下所示:可以看到,当前的Head指向了dev分支

image-20211110180013443

3. 提交分支

接下来,我们可以在dev上进行改动,然后再将改动提交到dev分支

操作步骤如下:我们先创建一个demo.txt文件,然后提交

PS D:\branch-demo> git add .\demo.txt
PS D:\branch-demo> git commit -m "demo.txt"
[dev bd68189] demo.txt
 1 file changed, 1 insertion(+)
 create mode 100644 demo.txt

提交之后我们用git log命令查看提交记录,如下所示:可以看到最新的提交是在dev上,master指向的是旧的代码

PS D:\branch-demo> git log
commit bd681899740d30ee0c793843e4b175d596b3430b (HEAD -> dev)
Author: jalon2015 <1121263265@qq.com>
Date:   Wed Nov 10 18:02:41 2021 +0800

    demo.txt

commit 2c053a9d5df9fcb08c29a918f7992d5b763392fc (master)
Author: jalon2015 <1121263265@qq.com>
Date:   Wed Nov 10 17:45:41 2021 +0800

    first commit

提交之后的示意图如下所示:此时dev往前移动了一步,但是master还在原地

image-20211110180349912

此时我们用IDEA的git窗口,也能看到类似的示意图,如下所示:

image-20211110180619100

4. 合并分支

提交之后我们就可以将dev合并到master主分支,合并之前需要先切换到master分支,再合并dev

切换分支的命令上面有提到:git switch master

合并的命令为: git merge dev;这里的意思就是将dev合并到master分支

PS D:\branch-demo> git checkout master
Switched to branch 'master'
PS D:\branch-demo> git merge dev
Updating 2c053a9..bd68189
Fast-forward
 demo.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 demo.txt

此时运行git log,可以看到Head同时指向了master, dev:

PS D:\branch-demo> git log
commit bd681899740d30ee0c793843e4b175d596b3430b (HEAD -> master, dev)
Author: jalon2015 <1121263265@qq.com>
Date:   Wed Nov 10 18:02:41 2021 +0800

    demo.txt

commit 2c053a9d5df9fcb08c29a918f7992d5b763392fc
Author: jalon2015 <1121263265@qq.com>
Date:   Wed Nov 10 17:45:41 2021 +0800

    first commit

分支合并后的示意图如下所示:

image-20211110181258860

合并分支,如果有冲突,需先解决冲突,然后再合并;如何解决分支合并冲突

5. 重命名分支

重命名分支的命令:git branch -m <old branch name> <new branch name>

PS D:\branch-demo> git branch -m dev newDev
PS D:\branch-demo> git branch
* master
  newDev

这个命令可能不常用,但是知道一下也是可以的

5. 删除分支

合并完成后,我们就可以删除分支了;

但是删除分支之前,我们要先切换到其他分支,否则无法删除;

切换到其他分支:git switch master

删除分支的命令:git branch -d dev

PS D:\branch-demo> git switch master
Switched to branch 'master'
PS D:\branch-demo> git branch -d dev
Deleted branch dev (was bd68189).

删除之后的示意图如下所示:dev分支没了

image-20211110182828729

6. 快捷方式

上面我们的创建分支和切换分支是分开操作的,其实可以一步到位;

创建并切换分支的命令:git switch -c dev

PS D:\branch-demo> git switch -c dev
Switched to a new branch 'dev'

总结

  • 创建分支:git branch <branch name>

  • 切换分支:git switch <branch name>

  • 查看分支:git branch;分支列表中,前面带*的就是当前分支

  • 合并分支:git merge <branch name>;将指定的分支合并到当前的分支

  • 删除分支:git branch -d <branch name>

  • 创建并切换分支:git switch -c <branch name>