将现有项目添加到git仓库

网上有很多搭建的Git仓库都是从裸库开始

我们要做的是将已有项目添加到Linux的服务器上的远程仓库

一.linnux服务器操作

使用我的linux版本的英文Centos7

安装git

yum install -y git

创建一个Git的用户来运行的Git服务

1.创建git用户

adduser git

2.设置用户密码

passwd git

3.禁止shell登录

vim /etc/passwd

找到git用户的那一行并进行修改


git:x:1003:1003:,,,:/home/git:/bin/bash
修改为
git:x:1003:1003:,,,:/home/git:/usr/bin/git-shell

这样一来创建 git用户可以正常通过ssh使用git,但是无法登录shell,会更加的安全

创建客户端登录证书

1.客户端创建私钥和公钥

ssh-keygen -t rsa -C "[email protected]"

创建以后你的用户主目录下面就有个.ssh文件夹数,的里面id.rsa就是私钥,id.rsa_pub就是公钥。公钥里面的内容待会要用到

2. git 服务器打开RSA验证

vim /etc/ssh/sshd_config

并找到前面。去掉的#

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh /authorized_keys

3.在git用户的主目录里新建.ssh文件夹,然后在文件夹里面新建文件authorized_keys

cd /home/git
mkdir .ssh
cd .ssh
vim authorized_keys

4.将客户端的的id.rsa_pub公钥写进文件authorized_keys,一行一个。添加了这个以后你连接中央仓库就不需要输入密码了,直接使用公钥和私钥的验证方式

创建git的中央仓库

1.创建git仓库存放目录

mkdir /home/git/repositories

 

二,客户端操作

请根据自己的操作系统下载安装对应的git

1.进入到项目内

cd /home/project

2.初始化仓库

git init

3.先把现有仓库导出为裸仓库 - 即一个不包含当前工作目录的仓库

cd ..

git clone --bare project project.git

此时会在家目录下创建project.git目录
将project.git目录移动到你的linux服务器git仓库的目录/home/git/repositories 

4.在你的项目目录添加远程服务器

cd /home/project

git remote add origin [email protected](服务器IP地址):/home/git/repositories/project.git

 

三.linux服务器操作

1.创建钩子文件

添加钩子文件本地推代码的时候会将修改的内容提交到/home/git/repositories/project.git

钩子文件会自动跳到/data/websibe/project进行拉代码再次访问你的网站代码就已经被更新了

vim /home/git/repositories/project.git/hooks/post-receive

钩子文件内容

#!/bin/sh
unset GIT_DIR
 
NowPath=`pwd`
DeployPath="/data/website/project"
 
cd $DeployPath
git pull origin master
 
cd $NowPath
exit 0

然后给钩子文件添加执行权限

chmod a+x /home/git/repositories/project.git/hooks/post-receive

将仓库克隆到网站下面

cd /data/website/

git clone /home/git/repositories/project.git

 

修改仓库与项目的所属组与所属用户为git 不然钩子文件是以git用户执行的,进入项目后pull会没有文件修改权限

chown -R git:git /home/git/repositories/project.git

chown -R git:git/data/website/project

 

四,客户端操作

1.修改一些文件内容 尝试提交然后push到仓库

vim test.php

git add .git commit -m 'add test.php'

git push origin master

2.设置操作分支(可省略origin master)

 git branch --set-upstream-to=origin/master

3.一键pull与push

git add -A && git commit -m 'test' && git pull && git push

你可能感兴趣的:(将现有项目添加到git仓库)