在现代软件开发过程中,版本管理系统(VMS:Version Manager System)或称版本控制系统(VCS:Version Control System)是一个必不可少的工具。这些工具中的代表是分布式版本控制系统Git,不管是个人开发还是团队协作开发,Git都是一剂好用的“后悔药”。
提纲####
本文尝试从以下几个方面介绍Git工具:
1、Git简单原理介绍
2、Git基本概念介绍
3、Git和Github的关系
4、Git使用操作步骤
5、PrivateCode的选择
Git基本原理介绍####
举例来说,我在D盘写了一个方案,第二天我要修改这个方案,但我还是防止老板再想用第一天的版本,我需要怎么做呢?那我把第一天的方案文档,复制一份,起个不同的名字。这是一个人做方案。如果多个人做方案,那怎么办呢?可以这样做,架设一个服务器,把文档的中间版本即版本库存放到服务器上,团队的人都可以下载这个文档,修改完了之后,再上传到服务器。这种思路就是SVN的实现。
这么做还有一个缺点,那就是本地保存的都是最新版,只有一个版本,中间版本都在服务器上,如果服务器挂了,那就歇菜了,无法回溯了。那再加个篮子,中间版本在服务器上存一份,在本地也存一份。这就是Git的实现。本地和服务器都保存了完整的版本库,离线的情况下也一样可以进行完整操作,同时解除了单点故障风险。如果SVN离线后,就没办法向上回溯版本了。
Git基本概念介绍####
1、本地仓库(本地版本库):可以把它理解成工作目录。仓库不是唯一的,有多少个工作目录或说项目目录,就可以有多少个仓库。
2、远程仓库:用来存放中间版本的仓库,例如github、bitbucket。当然也可以自己搭建私有远程仓库。
Git和Github的关系
git是一个程序,一个进行版本控制的工具软件;github是一个网站,提供存储git生成的版本库的服务,是一个存储空间,像是百度云,只是存储的内容和操作方法有区别。
Git使用操作步骤
1、下载Git程序:https://git-scm.com/downloads,对应使用的操作系统;
2、安装Git程序:windows 双击安装,其他系统使用命令行工具或其他方式;
3、进行基本配置:windows下打开git bash 或 cmd 配置用户名和密码,Linux下打开Terminal 或其他终端。3.1($为命令提示符,不用输入)
$git config --global user.name acyctech
$git config --global user.email [email protected]
3.2生成SSH key(windows下使用git bash)。
$ssh-keygen -t rsa -C "[email protected]"
$cat ~/.ssh/id_rsa.pub
说明:[email protected]是我的邮箱,使用时请更换。
4、git bash 或 cmd 下进入你的工作目录(请提前建好文件夹或命令行mkdir),这个目录会作为你的一个本地仓库。示例文件夹名称为:myapp
$cd e:\workspace\myapp
如果是cmd记得加上参数或是分步进入:
$cd /d e:\workspace\myapp
或
$cd e:
$cd workspace\myapp
5、把这个目录转化为仓库,或称作新建本地仓库,或称作初始化仓库。意思就是把这个工作目录和Git关系起来。
$git init
6、把文件夹内的文件添加到git缓冲区(请提前建立text.txt文件)
$git add text.txt
如果有很多文件要添加,用下面这条命令
$git add .
7、把缓冲区内的操作提交到本地仓库,这一步是真正操作,但要以上一步为基础。这么做能提高效率。
$git commit -m "this commit is for test"
8、github基本操作
8.1注册github账号
8.2.新建Repository,假设名为myapp
8.3新建SSH key:
右侧用户图标--settings--左侧SSH and GPG keys--New SSH key--title--key(用下面的命令查看)--Add SSH key。
查看本地生成的SSH key的命令如下(git bash),选中复制:
$cat ~/.ssh/id_rsa.pub
这个SSH key是在3.2中生成的。
8.4测试连接是否成功
$ssh -T [email protected]
Hi acyctech! You've successfully authenticated, but GitHub does not provide shell access.
出现上述结果证明连接成功,acyctech是我的用户名。
8.5建立git和Github上刚才新建的仓库myapp之间的关联:
$git remote add origin [email protected]:acyctech/myapp.git
其中git remote add是关键字,不变;origin是连接的名称,是远程仓库在本地的代名词,origin后面的长字符串是仓库的SSH,在github仓库下可以看到,[email protected]不变,acyctech代表用户名,myapp代表仓库名,不要忘记加.git后缀。
9、把本地仓库内容推送到远程仓库,或说把本地仓库同步到远程仓库。
$git push -u origin master
说明:-u参数只在第一次添加
10、在github仓库页面,刷新,可以见到仓库下已经同步了本地仓库的文件。