赞
踩
最近实验室准备搭建一个代码库以供大家科研学习使用,并且想要支持代码的版本管理,想了一下,还算是熟悉的两个工具,Git、SVN,于是对比了一下两者的区别:首先SVN是集中式版本控制系统,版本库是放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先需要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己的代码提交到中央服务器。这样一来,如果服务器出问题了,岂不是直接崩盘?另外查了一下资料,发现实现起来不太容易,遂放弃。而Git是分布式版本控制系统(DistributedVersion Control System,简称 DVCS),相比之下,它更倾向于分布式模式,除了有一个中心版本库之外,每个独立的开发人员也可以在自己的机器上克隆一个自己的版本库。并且同样可以查询历史版本记录,创建项目分支等。而且相比较SVN,它处理分支相对比较简单。于是,准备选择使用Git来搭建。先来学习Git的一些简单操作。
Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。到了 2005 年,开发 BitKeeper 的商业公司与Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区基于使用BitKeeper 时的经验教训,开发出自己的版本系统。
1、Git分为两种仓库:本地仓库和远程仓库;
本地仓库:是在开发人员自己电脑上的Git仓库;
远程仓库:是在远程服务器上的Git仓库;
2、主要的四个操作分别是:Clone、Push、Pull、Commit,如图1所示。
Clone:克隆,就是将远程仓库复制到本地;
Push:推送,就是将本地仓库代码上传到远程仓库;
Pull:拉取,就是将远程仓库代码下载到本地仓库;
Commit:提交,将暂存区的改动给提交到本地的版本库。
工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
以上是对Git操作的一个简要介绍,如果需要实际使用它,需要选择一个基于这种技术的托管服务或者可自行搭建服务器,托管服务比较出名的Github、码云Gitee或者是Gitlab。那么这些托管服务提供的就是远程仓库。
由于Github是国外的服务器,访问速度较慢,我们就选择国内的码云Gitee来实现我们的需求。首先就是去Gitee网站(https://gitee.com/)注册一个账号。账号注册好之后,在平台上建立一个远程仓库。接下来就需要安装Git。
可以发现Git是一个类似于windows的CMD命令行一样的程序。相关的安装方法可以上网查询,基本都大同小异。那么安装好之后,我们接下来操作一下。这里就用我们刚刚新建的一个远程仓库来测试。
然后在我们的本地磁盘中新建一个文件夹,同样命名为test:D:\test;接下来在这个文件目录下打开Git。
先配置环境,登录你的远程仓库账号:
git config --global user.name “用户名” git config --global user.email “邮箱” |
接下来我们就需要获取一个Git仓库,获取的方式通常有两种:1、在本地初始化一个Git仓库,从远程仓库克隆。
git init // 初始化一个本地仓库,如果出现文件.git(这是个隐藏文件),则成功。 // 如果这是我们需要从远程仓库将工作的代码clone下来 git clone https://gitee.com/myleecode/test.git(这个地址是我们刚刚建立的一个新的远程库) // 假设此时我们更新了一个代码main.m,我们现在将它push到远程仓库中 git push origin master // 其中origin是远程仓库服务器的默认名称,master是一个默认创建的分支 |
经过上面的操作,我们发现,远程仓库中多出了一个文件main.m,说明我们操作成功。
接下来,假设别的开发人员更改了代码,加入在远程仓库中多了一个文件test.md
我们在进行新的开发前,需要将最新版本的代码拉取下来。
git pull origin master |
成功拉取下来。
从上述的一个操作流程来看,发现利用代码行来操作这个远程仓库的流程,其实并不是很简洁,所以为了方便,大家可以使用一些第三方的工具来进行界面操作。例如:TortoiseGit。除以上说明之外,Git中还有很多指令以及本地库地操作,为了更好地使用它,大家可以系统地学习。
李玉杰,重庆大学无线通信技术实验室硕士研究生,主研方向为智能信号与信息处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。