git分支管理

简介: 创建分支。 依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文。 分支可以并行的管理版本,协同合作编写代码,在分支上完成工作,然后合并分支。 分支类似于平行的多个支线。 分支的作用:比如多人

备注:

本文转载参考于廖雪峰老师的博客Git教程。依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文。

知识点

  • 分支可以并行的管理版本,协同合作编写代码,在分支上完成工作,然后合并分支。
  • 查看分支和当前分支:git branch
  • 创建分支git branch <name>
  • 切换分支git checkout <name>
  • 创建并切换分支git checkout -b <name>
  • 合并指定分支到当前分支,git merge <name>
  • 删除分支git branch -d <name>

分支管理

分支类似于平行的多个支线。

分支的作用:比如多人协作开发中,你开发的功能需要两周完成,第一周还没写完,如果提交,由于代码不完整,提交可能会导致别人不能干活,但是如果等代码全部写完再提交,又有丢失的风险。

借助分支,你可以创建一个属于自己的分支,多个人各自在自己的分支上正常工作,互不影响,等到开发完成后,在一次性合并到原来的分支上,保证了安全、高效、协同、互补影响。

Git分支的创建、切换、删除非常快,和文件多少无关。

创建与合并分支

版本回退中,Git的版本管理是将每次提交串成一条时间出现,这条时间线就是一个分支。

目前创建的Git仓库只有一个分支——主分支,即master分支,

HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

开始,master 分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支和当前分支的提交点。

master分支和head和提交

每次提交,master分支都会向前移动一步,随着不断的提交,master分支的线也越来越长。

当我们创建新的分支,比如dev分支,Git新建一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上。

新dev分支和head和提交

Git创建分支很快,因为Git只增加一个dev指针,同时修改HEAD的指向,工作区的文件都没有任何变化。

现在对工作区的修改和提交就针对dev分支,比如新提交之后,dev指针往前移动,而master指针不变

新dev分支和head和提交2

当我们在dev上的工作完成了,就可以把dev合并到master上。

Git的合并很简单,就是直接把master指向dev的当前提交,这就完成了合并。

dev分支和master合并

Git合并分支也很快,仅仅是改改指针,工作区内容不变。

合并完分之后,如果删除dev分支只要把dev指针删除就可以

只剩下一条master分支

分支和master合并后删除dev分支

创建分支。

  • 创建dev分支,并切换到dev分支
$ git checkout -b dev
切换到一个新分支 'dev'

git checkout -b xx表示创建分支并切换。

  • 分步骤创建并切换分支dev2。如下
$ git branch dev2
$ git checkout dev2
切换到分支 'dev2'
  • git branch查看当前分支
$ git branch
  dev
* dev2
  master

git branch列出所有分支,当前分支前面有一个*号。

  • 现在可以在dev2分支上正常提交。如修改readme.txt文件。然后查看Git状态
$ git status
位于分支 dev2
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

    修改:     readme.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

提示当前分支位于dev2上,并且工作区readme.txt修改

  • 分支提交
$ git add readme.txt
$ git commit -m"modify readme.txt at branch"
[dev2 03d07d2] modify readme.txt at branch
 1 file changed, 1 insertion(+)

如上,在当前分支dev2上完成了提交。

  • dev2分支上提交完,切回master分支:
$ git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
liu@liu-virtual-machine:~/gitTest$ cat readme.txt

`this is a test that I learn and use git version control system
this is a beginning
wofaidognyixie dognxi

查看可以看到,readme.txt文件保持和修改前的一致。

  • 切换到dev2分支,可以看到dev2分支上内容为之前最新修改内容
$ git checkout dev2
切换到分支 'dev2'
$ cat readme.txt

`this is a test that I learn and use git version control system
this is a beginning
wofaidognyixie dognxi
create two new branch

合并分支

  • dev2分支内容合并到master分支(当前分支为master
$ git merge dev2
更新 036ced2..03d07d2
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

此时查看readme.txt内容,已经和dev2一样

git merge命令用于合并指定分支到当前分支。

注意,上面合并时提示 Fast-forward,Git指示本次合并是“快进模式”,即把 master指向 dev2的当前提交,所以速度很快。

删除分支

  • 删除dev2分支,合并完成后就可以放心的删除dev2分支了。
$ git branch -d dev2
已删除分支 dev2(曾为 03d07d2)。
$ git branch
  dev
* master

删除后,查看branchdev2分支已经没有了。

Git创建、合并和删除分支都非常快,所以Git鼓励使用分支完成某个任务,合并后再删除分支,效率高并且安全。

相关文章
|
6月前
|
API 开发工具 git
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
97 1
|
6月前
|
开发工具 git
|
6月前
|
安全 开发工具 git
【Git】—— 分支管理策略
【Git】—— 分支管理策略
116 0
|
6月前
|
开发工具 git 开发者
git仓库分支管理
git仓库分支管理
|
1月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
|
3月前
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
157 0
【规范】Git分支管理,看看我司是咋整的
|
6月前
|
开发工具 git
|
6月前
|
开发工具 git
【Git】分支管理的基本操作
【Git】分支管理的基本操作
|
5月前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
465 0
|
6月前
|
开发工具 git
Git分支管理
Git分支管理
Git分支管理