博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux自建git仓库
阅读量:4663 次
发布时间:2019-06-09

本文共 1808 字,大约阅读时间需要 6 分钟。

一 安装git,设置git用户(当前操作是root用户)

1.安装git

yum install git

2.创建git用户

groupadd gituseradd git -g git

3.创建证书登录

收集用户的公钥,公钥是用户自己生成,不懂的可以看看 https://www.cnblogs.com/JahanGu/p/9884344.html

把公钥导入到authorized_keys文件里面

cat id_rsa.pub>>authorized_keys

也可以直接打开公钥复制里面的内容粘贴到authorized_keys文件里,一行一个;

cd /home/gitmkdir .sshchmod 755 .sshtouch .ssh/authorized_keyschmod 644 .ssh/authorized_keys

 

 

4.初始化git仓库

选定一个目录作为我们的git仓库,例如:/home/mygit/demo.git 

cd /homemkdir mygitchown git:git mygit/cd mygitgit init --bare demo.git

执行初始化会输出

Initialized empty Git repository in /home/mygit/demo.git/

初始化成功之后就可以在本地客户端clone了(注意demo.git文件权限问题,不然提交不上代码)

二 本地客户端测试(可以安装source tree工具操作)

git clone ssh://git@xxxx.xxxx.xxxx:22/home/mygit/demo.git

git clone ssh://{服务端用户}@{你的ip}:{端口号默认是22,如果不是22就写,否则不用写}{你的仓库路径}

试着提交一个文件看看

touch test.txtgit add .git commit -m 'test'git push origin master

此时你到服务器找这个test.txt文件是看不到的

(注意 --bare参数创建的裸仓库,就是没有工作区的,提交上来的文件是看不到的)

(1) 如果要创建一个可以看到项目文件的仓库就按照下面操作执行

git init demo.gitcd demo.gitgit config receive.denyCurrentBranch ignore

最后一句命令是允许文件上传到远程服务器,不执行这句,客户端无法提交文件到服务器

其实就是在/home/mygit/demo.git/.git/config文件里面添加了

接下来创建钩子在/home/mygit/demo.git/.git/hooks目录下新建文件post-receive

vim post-receive
#!/bin/shunset GIT_DIR  //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.')
cd .. git checkout -f

给post-receive执行权限

chmod 755 post-receive
chown -R git:git mygit/

接下来在客户端执行提交文件,在/home/mygit/demo.git仓库里面就可以看到文件啦;(注意demo.git文件权限问题,不然提交不上代码)

(2) 如果要创建一个自动更新的web项目按照下面操作执行

首先创建一个web项目目录例如/home/myweb/把这个目录拥有者变成git

从新更新钩子post-receive的代码

#!/bin/sh
unset GIT_DIR  //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.')
cd .. git checkout -f
WORK_TREE='/home/myweb'git --work-tree="${WORK_TREE}" reset --hard

现在在客户端提交一个文件,在/home/myweb目录下面就看到文件了,只有操作master提交才会有文件

 

转载于:https://www.cnblogs.com/JahanGu/p/9989891.html

你可能感兴趣的文章
[Python] Create a minimal website in Python using the Flask Microframework
查看>>
【PHP 】 伪静态 - 3. 伪静态的基本使用
查看>>
LA 4636 (贪心) Cubist Artwok
查看>>
项目经理怎样获得领导和客户的认可
查看>>
多线程优化 锁升级
查看>>
Linux文件系统
查看>>
安卓APP测试验证点总结
查看>>
idea启动崩溃问题
查看>>
python3 异常处理
查看>>
hdu2102(广搜)
查看>>
java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not available
查看>>
[SinGuLaRiTy] 2017 百度之星程序设计大赛 复赛
查看>>
hard-negative mining 及伪代码实现
查看>>
JS框架_(Laydate.js)简单实现日期日历
查看>>
19. Remove Nth Node From End of List
查看>>
Struts2(三):新建Struts2工程
查看>>
数据库调优过程(一):SqlServer批量复制(bcp)[C#SqlBulkCopy]性能极低问题
查看>>
AS中jar包和aar包区别及导入导出
查看>>
Android系统备忘1
查看>>
tomcat配置
查看>>