Git&GitHub
Git是一款免费、开源的分布式版本控制系统。
Github是用Git做版本控制的代码托管平台。也就表示这样的代码托管平台可以有很多个,git和github不是一一对应关系。比如,听说过的还有“码云”,等等。
Git是分布式版本控制系统,就是将同一个Git仓库,分布到不同的电脑上。这样工作时就必须找一台电脑充当服务器仓库的角色,每天24小时开机,其他每个人都从这个服务器仓库中拉取别人的提交,并且各自把各自的提交推送到这个服务器仓库里。但这是很不方便的,如果有个远程的免费的仓库可以使用才是最好的。
GitHub就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。也就是有了这个远程仓库之后,一起合作的小伙伴拉取或是提交都是面对这个远程仓库就可以了。
什么是Git
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
什么契机下,产生的版本控制系统:
- 如果几个同事一起合作编辑一个文件,如果全靠人工的话,就需要保留每个时期,每个人的版本,以便之后查看,修改。还得整理出包含每个改动的最终版,这个最终版只要有人改动,就得找到那个改动的地方,然后更新。总之,整个过程是非常耗费时间和人力的。
由此需要,产生了版本管理系统,它可以自动帮我们记录每次文件的改动,还可以让同事协作编辑,也不用自己管理一堆类似的文件,也不需要把文件传来传去。 - 知道了版本控制系统,那什么是分布式呢?
与分布式对应的是集中式。
集中式就是将整个文件统一放在特定服务器上,工作的时候先要从这个服务器上获取到最新版本,然后再进行自己的编辑修改,完了再提交到此服务器上。所以如果没有网络,就没法工作了。 - 分布式是每个人电脑上都有完整版本,没有网络也可以工作,可以同事之间交换修改部分,也可以统一设立中央服务器,然后得到每个人修改的记录。
先简单这样有个概念,之后再自己实验。
如何安装Git
服务器端
1.先从yum安装git
yum -y install git
2.在需要的位置创建一个裸仓库(最后以.git结尾)
cd /usr/local
mkdir git
cd git
git init
3.创建一个git用户并赋予密码
useradd git
passwd git
4.赋予git用户权限
chown -R git:git learngit.git
5.禁用git用户shell登录(一定要禁用)
vi /etc/passwd
将git用户修改为如下(一般在最后一行)
git:x:1000:1000::/home/git:/usr/bin/git-shell
其他的不用改。服务端完成。
客户端
我使用的客户端为git for windows
-
1.安装,双击下一步,直到完成。
-
2.进入想要将项目放置的目录
-
3.创建用户
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
- 4.创建秘钥(用来防止每次commit或push都需要密码)
ssh-keygen -t rsa -C "你的邮箱"
一直回车....
-
5.将秘钥加入服务器列表
-
5.1 取得公钥(本地)
在当前目录下(若未改变目录,到C:\Users\Administrator.ssh\id_rsa.pub)找到.ssh目录下的id_rsa.pub文件,打开,复制其中内容.
- 5.2 将公钥加入服务器列表(服务器)
CentOS 7默认列表在/root/.ssh/authorized_keys,使用vi 编辑此文件输入刚才复制的内容,保存退出。
vi /root/.ssh/authorized_keys
//i修改
//esc后输入:wq保存退出
- 5.3 可以跳过此步,若克隆远程项目多次仍然需要密码,则检查上一步是否有错误,没有错误后,再配置这一步(服务器)
在/home目录下创建.ssh目录,进入,创建authorized_keys文件
cd /home
mkdir .ssh
cd .ssh
vi authorized_keys
加入我们的公钥后保存退出。
- 克隆项目
git clone git@101.101.101.101:/usr/local/git/learngit.git
到此,就成功的从服务器上克隆下我们所需要的项目。
网友评论