学习git第四天:Git分支

本次主要学习了git分支命令
# 分支 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。

有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

1、简介

Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。

Git 的 master 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

2、分支相关命令

2.1、分支创建(git branch)

创建分支,本质只是为了创建了一个可以移动的新的指针。比如创建一个test 分支 ,你需要使用如下代码

1
git branch test

这会在当前所在的提交对象上创建一个指针。
git是通过HEAD的特殊指针,他指向当前所在的本地分支,而上面的 branch 命令只是创建了分支,并不会自动切换到新分支中。
==创建新分支同事切换分支,可以使用如下代码 git checkout -b test==
当前分支的记录在.git/HEAD
==如果branch后面不跟任何参数,他会得到当前所有分支的一个列表==

2.2、查看日志(git log)

1
git log --oneline --decorate

发现当前mster和test分支都指向了a90007b提交的对象

2.3、分支切换(git checkout )

1
git checkout test

在.git/HEAD中可以指向了test分支上了

git checmout master 这个命令做两件事,一个是HEAD指到master分支,二是将工作目录恢复成master分支所指向的快照内容,也就是说你现在修改的话,项目将从一个较旧的版本上,本质上来讲,就是忽略test分支所做的修改,以便于向另一个方向进行开发。

分支切换会改变你工作目录中的文件,在切换分支时,一定要注意你工作目录里的文件会被改变,如果是切换到一个较旧的分支,你的工作目录恢复到改分支最后一次提交时的样子,如果git不能干净利落的完成这个任务,他将禁止切换分支

2.4、项目分叉历史(git log --onelien --decorate --graph --all)

1
git log --oneline --decorate --graph --all

2.5、创建分支与

2.4、删除分支

1
git branch -d test

强制删除分支

1
git brach -D test