Git学习笔记(一)

2017-04-23  本文已影响59人  苦寒行

本文主要分为以下几个方面:

git简介

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git工作流程及原理

Git工作流程

image

一般使用流程如下:

Git原理

iamge

可以通过“git init”命令创建一个git本地仓库,创建好的git体系可以分为三个部分:

对上图的解析

图中的head是一个“游标”,其指向当前有效的分支,master是当前有效分支的目录树。
objects是Git的对象库,位于“.git/objects"目录下,里面包含了创建的各种对象及目录。
结合流程,我们的所有工作将在工作区进行,当我们使用”git add”命令后,我们修改的内容将提交到对象库的一个新对象中,并将该对象的id写入暂存区的文件索引中。
当执行“git commit”命令后,暂存区的目录树会整体写入对象库中,且master分支目录树将更新为暂存区提交的目录树。
当执行“git reset HEAD”命令后,将会使用master分支的目录树替换暂存区中的目录树,即用版本库中的文件替换暂存区的文件,但是工作区不受影响。
当执行“git rm --cached <file>”命令,会从暂存区直接删除文件,但是工作区不会受到影响。
当用“git checkout .”或者“git checkout --<file>”命令,会用暂存区文件代替工作区文件。
当用“git checkout HEAD .”或者“git checkout HEAD <file>”命令,会用head指向的master分支中的全部或者部分文件代替暂存区和工作区的文件。

git基本操作

test目录下有一个test.js文件,作用是输出一段话

Paste_Image.png Paste_Image.png

使用git init命令之后会在当前目录创建一个.git目录。

Paste_Image.png

可以看到,提示我们一个新的文件被提交到暂存区且可以用“git rm -cached <file>”来删除它

Paste_Image.png

再次使用git status可以看到test.js前面变成了AM,只是指该文件在上次提交之后发生了变化。


可以看到我们做出的修改

Paste_Image.png

使用git log可以看到我们的提交成功。

Paste_Image.png Paste_Image.png Paste_Image.png

可以看到,工作区和暂存区文件都被删除了。

Git分支管理

分支是git一个十分重要的特性,常用命令如下:


如上图,我们创建了一个分支branchTest,并用git branch查看,*指明我们当前使用的分支。

Paste_Image.png

这是master分支的所有信息,test.js输出我们的分支名称,下面我们切换到branchTest分支:

Paste_Image.png

可以看到切换后的起点和master分支节点最后快照相同,现在我们在该分支下创建test1.js并提交:

Paste_Image.png

可以看到我们创建test1.js并使其输出该分支名称,下面我们切换回主分支并合并,合并后branchTest分支新创建的test1.js会并入master分支,但是当修改过同一个文件之后,并入操作不能成功,会出现冲突,此时只能通过手动修改消除冲突。

Github

稍后介绍。

上一篇下一篇

猜你喜欢

热点阅读