git使用笔记2--分支简介

from http://progit.org/book


Chapter 3


git 存储的是snapshot

git仓库的结构

每个文件内容的blob( What is blob?)

树(多少?):包含目录内容列表(?),文件名与blob的对应关系

commit:指向根树(root tree)和所有commit元数据

递交是, 会对每个子目录进行checksum并且保存这些tree到仓库,然后创建一个commit对象,包含元数据(作者, message, ...)和指向root project(taged内容的快照?)的指针,以便重新snapshot

一般commit对象包含有parent指针,指向前一个commit对象。可以是多个,若是合并自多个分支,或是0个,若是第一个commit。

一个分支就是一个指向那些commit对象的可移动的指针。默认的分支名字是master。初次递交时,分配到的是指向最后一次commit的master分支(主分支?)。每次递交,branch会自动移动。



创建分支 branch

新创建的分支指向当前的commit

git branch testing


HEAD指针

指向当前分支的指针。创建分支并不改变HEAD。



切换分支checkout

git checkout testing

创建并切换也可以使用一条命令

git checkout -b branch_name

切换到testing分支后递交的结果


此时master分支保持不变。

现在切换回master

git checkout master

checkout 做了两件事:已是移动HEAD指针,二是把工作目录的文件还原到新当前分支指向的snapshot。

再次在 master分支递交后结果如图



在git中一个分支是一个包含了40个字符的文件,这串字符是commit指向的SHA-1 checksum。因此创建和销毁分支是很cheap的(如何翻译cheap?)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值