GIt

3 篇文章 0 订阅

1 分布式版本控制系统基本概念

1.1 版本库

用来存储所有历史数据的地方。大多数版本库中存储了文件的当前状态,历史修改时间,修改者以及修改的原因。Git分布式版本库,每个人都会在本地有自己的版本库,而不是服务器上公共的版本库。版本库中其他存储的常见内容有Makefile,配置文件,设计文档,使用文档,运行脚本,单元测试脚本等信息。

1.2 工作目录树

开发项目中所需要的全部文件,包括源代码文件,构建文件,单元测试文件等。

1.3 代码修改与文件同步

程序员每次将修改提交到版本库中都使得版本库中新增一个版本。除了记录修改内容之外,还将纪录修改的日志信息即修改提交的信息。使得方便查询到为什么要做这个改动。
push操作将修改的代码推入到公共版本库中,但别人本地版本库依旧没有同步,因此需要将改动fetch下来。merge 将本地版本库所做的修改与公共版本库中更新的内容进行合并。

1.4 分支

主干是研发的主线,而分支可以进行缺陷的修改,这样主干与分支之间可以同时进行。分支同时也可以在本地创建,并留为私用。可以对分支进行实验性的工作,如果没有价值,在悄无声息的删除。

1.5 合并

合并操作将两条或以上的分支合并到一起,当不同的变化发生在同一文件的同一位置时,会产生冲突。Git提供了merge tracking,记录和跟踪所做的合并操作。

1.6 锁机制

严格锁,check out程序员第一次从公共版本库中检出某个文件,版本库禁止其他人进行修改这个文件。乐观锁,允许多个程序员同时修改同一文件

2 GIT安装与设置

2.1 windows下安装Git


1.下载MSys版的Git

2.设置安装路径安装

3.设置Git的环境变量

2.2 设置Git

Git需要用户提供若干信息,需设定两个全局变量的值,在这台计算机上使用任何Git版本库时,这些全局变量的值都会起作用。通过使用Git config命令,用户可以将此类信息提供给本地版本库。首先设置user.name,说明修改是谁提交的。user.email用于联系修改者。在相关命令中加上–global参数可以设置全局变量的值。

git config –global user.name “XXX”

git config –global user.email “XXX@XXX”
使用git config –global –list命令查看是否设置成功。

2.3 获取git内置帮助信息


git help [command]

3 创建第一个项目

3.1 版本库的创建

在git中创建版本库时,首先需要决定吧项目的源代码存放在哪里,创建目录mycode,进入到该目录,输入git init命令

3.2 代码修改

对文件进行修改后,要想让git跟踪这个文件,需要先使用git add filename命令将文件添加到版本库的索引,然后在使用git commit命令进行提交。

git add “XXX.cpp”

git commit -m “add in hello word”

参数-m的作用用于告知Git的提交留言为”add in hello word”。

git commit命令会创建一个提交目录,提交目录是存储在版本库中的历史记录,每提交一次就会创建一个记录,Git会把提交者的姓名和邮件地址以及提交留言都会添加到提交记录中。

现在我们已经提交了一个文件到版本库中。运行git log命令可以查看提交到相关信息。

commit sha-140位哈希码

author:作者 <邮箱>

Date:日期

提交留言
sha-1哈希码,sha是一种安全哈希算法,从已知的数据中产生一个短的字符串,GIt使用版本库中的元数据产生提叫名称,这些元数据包含提交者的个人信息及提交的时间戳

3.3 在项目中工作

在”XXX.cpp”中继续进行修改,使用git status命令查看工作目录树的状态
*
git status

所在分支

changed but not updated

(use “git add …” to update what will be commited)

modified: index.html*

3.4 处理与发布

mycode项目的代码已经可以进行发布了,而与此同时,借助分支,可以继续进行下一版本的开发。创建分支的命令为git branch [新分支名称] [父分支名称],新分支基于已经存在的父分支。

git branch RB_1.0 master

从主分支上创建一个RB_1.0的分支,主分支时Git上默认的分支。

对主分支版本的文件继续进行修改,并进行提交。使用git checkout RB_1.0切换到发布分支,修改文件,并进行提交。

现在我们已经可以进行分支的发布了,我们需要为其打上一个标签。意味着在版本库的历史记录中标记出特定的点,这样就容易找到相应的版本。

git tag 1.0 RB_1.0 [标签名] [打标签的点]

git tag命令可以查看版本库中的标签列表

给代码打过标签之后,现在在两条分支上有不同的代码的提交,他们并不知道彼此所包含的代码。RB_1.0用于发布,主分支用于版本2.0新功能的开发,现在需要将RB_1.0分支上所做的修改合并到主分支上。变基命令git base可以完成这项工作。变基是将一条分支上的修改再另一条分支的末梢重现。

1.首先使用git checkout master切换到主分支

2.git rebase RB_1.0 [希望变基到的分支名称]

删除分支,看上去很危险,实际上我们依就可以通过标签所指向的节点找到分支。使用git branch -d [分支名称]

为代码发布创建归档文件,没有必要总是把历史记录一起发布,通常情况下,将标签对应的版本内容打包成压缩包。使用git archive –format=[tar|zip] –prefix=[发布目录] [归档标签名称],例如

git archive –format=tar –prefix=mycode-1.0\ 1.0 |gzip > mycode-1.0.tar.gz

3.5 克隆远程版本库

git clone [远程版本库位置] [存储版本库的本地目录]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值