版本控制工具GIT

来源:互联网 发布:英雄联盟mac可以玩吗 编辑:程序博客网 时间:2024/05/16 18:35

GIT简介

GIT是一款免费的、开源的分布式版本控制系统。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆在本地机器上拷贝一个完整的仓库

CVS和SVN是集中式的版本控制系统,我们今天要介绍的git是i分布式的

集中式的与分布式的区别在哪里,举个例子:

集中式的控制系统不明思意肯定要把所有的东西都集中到一块,我们为了理解取名叫中央服务器,比如说我们要做项目,所有的代码都要放到这个中央服务器上面

假设有A B C三个程序员,他们都是从我们的中央服务器上拿代码,比如A拿到1.c 2.c 3.c B也是拿到这些代码,C也是

拿到之后可能A要拿到2.c去修改,A修改完之后,要做一件事情,把这个修改通过网络提交。所有的控制都不是在本地,是在那个服务器上面

这个时候有产生了一个问题,A程序员要出差一个月,到一个没有网的地方,这一个是没有办法连接到服务器上面的,显然我们这个版本管理就没法做了。所以这里就存在很大的问题,离开了中央服务器,离开了网络,离开了本地就没有办法进行版本管理了。但是我们分布式版本管理系统,还是有一个中央管理库,还是有两个程序员,A和B。A会把中央管理库里面的东西全部克隆出来,克隆到了本地,修改完1.c之后也要提交,他提交是提交到本地,基本的管理工作都可以在本地在自己的电脑上完成,比如说我出差了,然后我通用可以进行版本管理,管理完之后回来之后然后与我们的中央管理库进行同步


然后怎么安装配置我们的GIT

sudo apt-get install git

还要安装其他的包

 sudo apt-get install git-doc git-email git-gui gitk

安装完成之后我们做一个配置,我们创建一个用户

git  config --global  user.name "five"

还有邮箱

git  config --global  user.email  "188123964@qq.com"

创建完之后我们git的安装与配置就完成了


我们来了解git常见操作

1.创建本地仓库

2.添加文件

3.版本回退

4.删除文件

5.建立远程仓库

6.提交到远程仓库

7.克隆远程仓库


首先我们建立本地仓库,先创建一个文件夹:mkdir  githome

然后进入这个目录,然后进入这个目录里面去,这里就作为我本地仓库,就是存放本地代码的位置

首先在那个目录下用git init


你会发现在我们这个目录下多了一个隐藏目录.git这里面有很多版本控制的信息。这个目录里面的任何东西我们都不能去改它,更不要说去删除它了

假设我们要在这里添加一个文件,比如添加readme.txt,先touch 创建这个文件

然后 git add readme.txt

        git commit -m "add readme"   提交 -m是说明 后面接的是你的注释



这样一个文件就加好了

加好了之后我们可以看看它的状态

git staus

状态是在当前的情况下,没有修改可以去提交

假设我们readme.txt已经管理起来了,我们现在要修改readme.txt

随便往里面写一点东西

然后我们再git status



这个时候就有变化了

他告诉我 管理的文件发生了改变,我管理的readme.txt

这里说我们对readme.txt进行了修改但是没有提交

如果你还想看一看,这个文件和版本库的文件有什么区别

可以用 git diff readme.txt来看看


这里就可以看出来

---a是我们版本库里面的,+++b是我们我们现在目录下面的

然后那个墨绿色的那个+1是代表第一行

最后+123456意思是在第一行多了信息123456

就是我一开始加进去的

现在是修改了,但是修改之后我们要提交到版本库里面去

怎么提交呢

还是使用之前的

git add readme.txt

git commit -m "change readme" 


提交之后我们再用 git status


说明我们对readme的修改已经成功了并且提交了


如果你想看一看做了哪些修改

可以用git log来看一看


可以看到我们这里进行了2次修改,从下网上看

第一次修改是去添加了文件 readme 

第二次是改变了readme 这里其实就是我们的注释


如果我们在项目管理中,不想要现在这个版本了,想回退到某一个版本怎么办

比如上面那张图的,我想回退到没有对readme做任何修改的时候怎么办

git reset --hard HEAD 从head开始回退几个版本,我们现在是在第二个版本,只需要回退一次就可以到我们没有对readme进行修改的版本了

回退一次的命令是git reset --hard HEAD^


看输出信息就知道我们回退了


下面我们要开始建立与服务器的连接了

首先在我们远程服务器上建立版本库,首先我们要登录github.com



我们先注册

然后登录后创建我们的版本库


名字随便取,后面选遵循GNU协议


创建好之后我们会发现在我们库里面没有任何文件

除了一个叫LICENSE的文本文件 这个文件是创建库的时候自带的


创建完之后要把它和我们本地库关联起来


先在开源项目的工作目录中执行如下命令确认你的身份: 

git  config  --global  user.email  “读者注册 GitHub 使用的邮箱” 

git  config  --global  user.name  “读者注册 GitHub 使用的用户名”



然后使用如下命令生成 SSH Key:

 ssh-keygen  -t  rsa  -C   "读者注册 GitHub 使用的邮箱" 

用SSH key是因为我们本地和网络上的库通信的方式是用的SSH

因此要创建一个Key

创建好了之后

你可以在用户名的目录下有个隐藏的ssh的目录



我们把id_rsa.pub打开


打开之后把所有的信息全部复制出来

要把这些信息填到我们版本库里面去


点网站上面最上面那个按钮

找到我们SSH keys


然后NEW SSH KEY

title随便取  把SSH key复制到相应的位置

然后添加进去


我们做一个验证看看能不能连接得上去  输入命令

ssh  -T  git@github.com 

后面选择yes

如果成功的话就会有这么一行信息

You've successfully authenticated, but GitHub does not provide shell access.


然后我们要获取在服务器上版本库的地址


在这个绿色的地方 默认是https的

但是我们是用的ssh来通信,所以选择后面那个地址

然后我们把它复制进来,这个就是我们版本库的地址了

现在我们要让我们本地库与版本库关联起来,通过下面这行命令

git  remote  add  名字(取个名字可以随便取 ) 地址(  我们拷贝的地址)  

这条命令要在我们设置的那个git目录下才可以 比如我们前面设置的githome目录下


关联起来后首先我们要把版本库里面的东西全部down下来 同步起来


采用下面命令 git pull --rebase 库的名字(我们之前取的) master(表示主分支的意思) 



同步完成之后你就可以看到在我们目录下面多了一个LICENSE的文件

LICENSE的文件就是在我们远程库里面的

但是远程库里面是没有你本地的文件的

我们现在就要上传

把文件下下来用的是pull

传上去用的是push

使用命令

git  push  -u  名字  master 

然后对我们远程库那个页面刷新,你就可以看到你的readme上传到了服务器上了


假设你们公司来了一个新的程序员,要把里面的东西全部克隆下来怎么办

直接使用克隆命令就可以了

git  clone 加你的远程服务器的地址就行了



原创粉丝点击