[Git使用手册]-1-创建本地仓库
引言
Git是一个分布式版本管理系统,最初是为了更好地管理Linux内核由Linus开发而创立的;本文将给出一个实例,创建本地项目repository。
文章目录
0×1.Git简介
在Linux诞生后不久,世界各地的Linux开发者们想要贡献自己的代码,必须先将代码发送给Linus,再由Linus审核并手工合并到Linux内核中,Linus很快发现,这样做的效率非常的低,不同的人有不同的编码习惯,这带来一个很严重的问题,两段代码只有几个字符的微小区别,都可能耗费大量的时间去比对和修改整合,Linus当时做梦都在想,有没有一种自动匹配整合的版本控制系统;
虽然在当时已经出现了SVN和CVS这些集中化的版本控制系统,但Linus一直不看好他们,他觉得类似SVN这种版本控制系统集中化的提交方式,不仅仅速度慢,当总服务器down掉后,所有人都无法工作了,所以他决定用C语言写一个分布式的版本控制系统,这个系统最初的目的只是为了更好地管理Linux内核,方便世界各地的程序员们提交和共享他们的代码,在短短的数周时间里Linus就完成了这个系统的编写工作,这就是后来的git,而git是不需要服务器的,任何安装了git的PC,都可以实现点到点的代码共享,此时Linus微微一笑,深藏功与名;
再后来,程序员们发现,单纯的PC到PC的git虽然很好用,但使用git的程序员遍布全球,你在git的时候地球另一面的那个git可能正在睡眠中,PC不开机就无法git呀,为了满足程序员们随时随地都能git的欲望,Linus再度出山,Github就此诞生了,Github使得程序员们可以将本地的git仓库中的最新内容push到云服务器中,此时地球另一面醒来的git只要从云服务器上pull下来最新的代码即可;
如今,git已经不仅仅用于管理Linux内核,成千上亿不同种内、不同语言的项目已经移植到了Github上,下面从git最初的功能开始讲起。
0×2.如何创建本地项目仓库
1)首先,安装git,Ubuntu系统安装方法:
987@hk987.xyz~$ sudo apt-get install git
Windows系统请下载[Git for windows]并自行安装,本系列文章使用ubuntu系统演示所有git命令。
2)安装完成后,首先要做的就是初始化本地git信息,本地git信息就像是个人的"git身份证",是为了让对方识别,是谁提交的代码:
#初始化本地用户名
987@hk987.xyz~$ git config --global user.name hk987.xyz
#邮箱信息,方便对方给你发邮件
987@hk987.xyz~$ git config --global user.email admin@hk987.xyz
#使用本地代码颜色(可选参数)
987@hk987.xyz~$ git config --global color.ui true
#列出git本地配置
987@hk987.xyz~$ git config -l
user.name=hk987.xyz
user.email=admin@hk987.xyz
color.ui=true
core.editor=vim
#配置文件位置
987@hk987.xyz~$ more .gitconfig
[user]
name = hk987.xyz
email = admin@hk987.xyz
[color]
ui = true
[core]
editor = vim
本地配置文件保存位置:
如果使用了"--system"参数,例如"git config --system",配置保存在"/etc/gitconfig"文件中;
如果使用了"--global"参数(上文使用了这种方式),配置文件保存在当前用户家目录"~/.gitconfig";
除此之外,每个单独的本地git仓库中,保存了独立的config(仓库名称/.git/config);
三种配置文件优先级从小到大(仓库配置>global配置>system配置),git优先选用本地仓库中的配置,如果不存在,再使用global配置,以此类推。
3)创建本地git仓库(repository)
#首先新建一个目录,用于存放这个项目的所有文件,假设我要创建一个博客项目,命名为myblog
987@hk987.xyz:~$ mkdir myblog
#进入myblog目录,使用"git init"命令,将这个目录初始化为"git仓库"
987@hk987.xyz:~$ cd myblog
987@hk987.xyz:~/myblog$ git init
初始化空的 Git 版本库于 /home/hk987.xyz/myblog/.git/
#执行成功后,会在当前目录创建一个隐藏文件夹".git",进入这个文件夹中,可以看到诸如"config"和"HEAD"等文件,其中的"config"就是本文前面提到的,优先级最高的本地仓库配置文件,而"HEAD"文件十分重要,会在后面的文章中详解
987@hk987.xyz:~/myblog$ cd .git/
987@hk987.xyz:~/myblog/.git$ ls
branches config description HEAD hooks info objects refs
现在我们有了一个本地的git仓库,可以在里面创建和修改文件了,就好像一个普通的文件夹一样,但其绝非一个普通的文件夹,所有的创建修改操作都被记录在".git"目录中。