首页
学习
活动
专区
工具
TVP
发布

Git 分支-简介

在项目开发过程中, 常常需要把工作从开发主线上分离开来,以免影响开发主线。比如紧急的修复一个严重BUG,一个对代码结构影响比较大的新功能的开发等等。

几乎所有的版本控制系统都以某种形式支持分支。 但是只有GIT提供了一种极其便捷轻便的分支管理机制。 这是GIT产生后迅速在全球大受欢迎的最主要的原因。因为在工作流程代码的分支和合并太重要了,直接影响到开发的便捷性。

Git 是如何保存数据的

假设现在有一个工作目录,里面包含了三个将要被暂存和提交的文件

假设对hello.py做些修改后再次提交

这次产生的提交对象会包含一个指向上次提交对象(父对象)的指针.

如果再发生一次修改提交:

Git 的 “master” 分支和其他分支比起来并没有特别之处。

git init 创建Git仓库的命令同时默认创建了它,大多数人都懒得去改动名字:

分支创建

Git 的分支,其实本质上仅仅是指向提交对象的可变指针.

Git创建分支时,只是为你创建了一个可以移动的新的指针:

那么,既然有多个分支,Git又是怎么知道当前在哪一个分支上呢? 也很简单,Git用一个名为 HEAD 的特殊指针来记录当前的分支。 你可以将HEAD想象为当前分支的别名.

运行git branch创建新分支时,git并不自动切换到新分支上, 也就是HEAD没有改变.

分支切换

使用git checkout命令:

>>git checkout testing

这样 HEAD 就指向 testing 分支了:

现在我们继续修改文件,再提交一次:

>>git commit -a -m '再次改变'

上图表明: testing 分支向前移动了,但是 master 分支却没有。

现在我们切换回master分支。

>>git checkout master

这条命令使HEAD指回master分支,同时将工作目录重载成master分支所指向的快照内容:

我们继续再稍微做些修改并提交

>>git commit -a -m '在master分支上的修改'

现在,这个项目的提交历史产生了分叉。因为这2次提交是在不同分支上进行的。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180421G0NX9P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券