专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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,就能确定当前分支和当前分支的提交点。

79_1.png

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

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

79_2.png

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

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

79_3.png

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

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

79_4.png

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

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

只剩下一条master分支

79_5.png

创建分支。

  • 创建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鼓励使用分支完成某个任务,合并后再删除分支,效率高并且安全。

文章永久链接:https://tech.souyunku.com/24306

未经允许不得转载:搜云库技术团队 » git分支管理

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们