项目托管软件使用——Git
git简介
git是创建linux的牛人Linus,觉得svn、cvs不好用然后自己花费两周写出来的,不得不佩服~
- 集中式版本
CVS及SVN都是集中式的版本控制系统,也就是说所有东西集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,写完了再推上去。 - 分布式
每个人的电脑上都是一个完整的版本库,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
git安装
sudo apt-get install git
sudo apt-get install git-core
或者自己去git官网下载源码。然后
./config
make
make install
git版本库的创建
我们的git在本地电脑工作的时候有三个概念,一个是工作区,一个是缓存,一个是仓库,我们写代码在工作区,代码写好了首先提交到缓存中git add (文件名)
,提交到缓存之后需要提交到本地仓库git commit -m "(注释)"
另外的就是远程仓库了需要push,后面讲解。
- 创建仓库
git init
使用命令之后就会在文件目录中出现一个.git目录
git 版本回退
当我们进行多次提交的时候,如果一旦出错,我们还可以进行版本回退。怎么做呢?
如图,我们可以看见几个版本,因为我提交了几次,那么过我想回到最开始的版本咋办。
- 查看日志
git log
- 获取版本id
commit f627a982d447c244ca8d44adfba69362ad7d3322
- 回退
git reset --hard f627a(这是版本id)
上面的hard就是一个指针,指向版本号的,所以回退很快,如下图表示。
- 工作区和暂存区
上面讲git版本库的时候已经讲了,上图就是基本的流程,stage就是git本地仓库,master是远程仓库。
git删除文件
git pull (首先拉去git仓库,跟本地保持一致)
git rm file(文件名)
git commit -m "delete"
git push
git提交文件到暂存区
git add file(文件名)
git commit -m "add"
git push
git提交文件到仓库
git commit -m "(注释)"
git 提交到远程仓库
git push
git查看连接的远程库
git remote -v
git删除跟远程的连接
git remote rm origin
git添加远程库
git remote add origin (ssh链接)
git验证
说到验证,我们就要说到ssh,ssh是加密的传输协议,跟浏览器的ssl一样,都是应用层的协议,所以几乎都用到了机密的环节,所以我们再配置git的时候需要进行一系列的配置。
- 生成公钥私钥
ssh-keygen -t rsa -C "6762641@qq.com"
- 添加私钥到ssh-agent上
ssh-add ./id_dsa
- 复制公钥到git上
cat id_rsa.pub
添加到下面
ssh-agent命令
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
ssh-agent bash
ssh-keygen命令
ssh-keygen -t rsa -C "6762641@qq.com"
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。
ssh-add命令
将密钥添加到ssh-agent高速缓存中,ssh-agent是管理密钥的
ssh-add ./id_rsa
把密钥再ssh-agent删除
ssh-add -d ./id_rsa
查看密钥
ssh-add -l
如何从0-1
- 给自己的电脑起名字
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "yjc"
git config --global user.email "6762641@qq.com"
- 下载git
sudo apt-get install git
sudo apt-get install git-core
或者自己去git官网下载源码。然后
./config
make
make install
- 初始化本地仓库
git init
- git验证
ssh-keygen -t rsa -C "6762641@qq.com"
ssh-add ./id_dsa
cat id_rsa.pub(将公钥复制到git页面上)
- 把ssh配置成默认的
ssh-keygen
- 创建文件
touch a.c b.c
- 提交到暂存区
git add a.c b.c
- 提交到本地仓库
git commit -m "first file"
- 连接远程仓库
git remote add origin git@git.kscampus.io:cpp-tasks/yangjinchai.git
这里加了之后可以查看一下加上了没
git remote -v
- 提交代码
git push -u origin master