侧边栏壁纸
  • 累计撰写 94 篇文章
  • 累计创建 100 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录
Git

Git学习-分支管理

汤圆学Java
2022-06-20 / 0 评论 / 0 点赞 / 276 阅读 / 3,326 字
温馨提示:
本文最后更新于 2022-06-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

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

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

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

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

目录

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

正文

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

合并分支,如果有冲突,需先解决冲突,然后再合并;[如何解决分支合并冲突](解决冲突 - 廖雪峰的官方网站 (liaoxuefeng.com))

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'

7. 远程分支

  • 新增
    如果远程没有对应的分支,那么可以直接将刚才创建的本地分支,提交到远程并创建一个新的远程分支;

    • 如果想要创建的远程分支名称和本地分之一致,那么直接push即可,命令如下:
    PS D:\branch-demo> git push origin new-branch
    To github.com:jalon/branch.git
     * [new branch]      new-branch -> new-branch
    
    
    • 如果想要创建的远程分支名称和本地分支名称不一致,那么需要分别指定本地分支名称和远程分支名称,命令如下:
    PS D:\branch-demo> git push origin new-branch:remote-branch
    To github.com:jalon/branch.git
     * [new branch]      new-branch -> remote-branch
    
    

    这里冒号前面的就是本地分支,冒号后面的就是待创建的远程分支;

  • 删除
    删除远程分支跟本地操作一样,也是-d命令,如下所示:

PS D:\branch-demo> git push origin -d jalon2
To github.com:jalon/branch.git
 - [deleted]         jalon2

总结

  • 创建分支:git branch <branch name>
  • 切换分支:git switch <branch name>
  • 查看分支:git branch;分支列表中,前面带*的就是当前分支
  • 合并分支:git merge <branch name>;将指定的分支合并到当前的分支
  • 删除分支:git branch -d <branch name>
  • 创建并切换分支:git switch -c <branch name>
  • 远程分支-新增:git push origin local-branch:remote-branch,其中冒号前面的为本地分支,冒号后面的为待新增的远程分支
  • 远程分支-删除:git push origin -d remote-branch,-d是–delete的简写
0

评论区