在Linux下搭建属于你自己的git服务器
环境说明
-
本地win7系统,需要安装gitbash
-
服务器是我租的阿里云服务器 版本是ubuntu-14.04.5
直入主题
使用putty(一个小工具)远程连接linux服务器,连接时会让你输入用户名,默认都是root,密码为了安全起见,你在输入时是看不到的,成功登陆后就会进入控制台,我们用命令完成所有的操作,下面就是详细的步骤.
注:之后在本地输入的命令都是在gitbash下完成的
1、在控制台输入命令sudo apt-get install git
,安装git,如果你是新安装的ubuntu,直接安装可能会报错,需要先执行sudo apt-get update
2、在系统里新增一个用户,登录名为git,
sudo adduser git
接着就会让你输入密码及一些用户信息,一直回车就行
3、初始化git仓库
进入git目录,新建文件夹travel作为代码仓库
cd /home/git
mkdir travel
cd travel
git init --bare travel.git
其中--bare参数是为用户创建一个裸仓库,这个’裸‘的意思就是版本库里以后只会生成版本的历史记录信息,而不会有项目源文件的拷贝。不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用--bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面。
使用裸仓库最根本的原因是为了避免冲突,如果有人在服务器上操作仓库的master分支,那么如果别的用户通过远端仓库的方式push代码到master分支,会有很大的概率发生冲突,所以使用--bare参数让用户无法在服务器上操作git仓库。
4.在本地的win7系统生成ssh key
先检查本地有没有ssh key 快捷键Win+R
打开运行,输入%userprofile%
,进入用户目录,看看有没有.ssh文件,
如果没有咱们手动生成一下
ssh-keygen -t rsa
或者生成一个带有你邮箱信息的ssh-key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
之后就会让你输入一些ssh key的信息,一直回车就行,之后就可以看到.ssh文件了,里面有两个文件
-
id_rsa:称为私钥
-
id_rsa.pub:称为公钥,我们需要把公钥里的信息存入到服务器的/home/git/.ssh/authorized_keys文件中
authorized_keys是专门用来存公钥的地方。
把用scp命令将id_rsa.pub上传到服务器。
这里要分为三步:
第一步:在linux服务上执行命令
cd /home/git
mkdir .ssh
chmod 777 /home/git/.ssh 这个命令是放开.ssh的读写权限,否则之后的赋值操作会提示没有权限
第二步:在你本地执行下列命令,使用scp命令吧id_rsa.pub复制到服务器的/home/git/.ssh这个目录下
scp ~/.ssh/id_rsa.pub git@[你服务器的外网ip地址]:/home/git/.ssh
例如 scp ~/.ssh/id_rsa.pub git@60.205.189.99:/home/git/.ssh
第三步:在linux服务器上将id_rsa.pub的名称改为authorized_keys
mv id_rsa.pub authorized_ke
好了现在就完成了将本地公钥添加到服务器,还是比较麻烦的。
5、修改文件的所有者,将/home/git目录下的所有文件及文件夹归git用户所有,并修改目录权限chmod 755 /home/git,在服务器上依次键入下列命令
chown -R git:git /home/git
chmod 755 /home/git
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
6、修改ssh配置文件,修改完之后重启ssh
vim /etc/ssh/sshd_config
service ssh restart
AuthorizedKeysFile这个配置项默认是被注释掉的,现在删掉前边的#就行。
到这里我们的私人git服务器就搭建好了,下面就看看能不能push和pull代码吧。
这里你得找到你的git服务器地址,根据这个教程,我们的服务器地址应该是这个
git@60.205.189.99:/home/git/travel/travel.git
在本地gitbash下键入命令
git clone git@60.205.189.99:/home/git/travel/travel.git
输入完这个命令你就可以把服务器上的仓库获取到你本地
之后使用如下命令,进行上传代码,获取代码。
git add
git commit
git push
git pull
今天的文章就到这里,欢迎大家留言。。。。。。。