linux自建git仓库
一 安装git,设置git用户(当前操作是root用户)
1.安装git
yum install git
2.创建git用户
groupadd git
useradd git -g git
3.创建证书登录
收集用户的公钥,公钥是用户自己生成,不懂的可以看看 https://www.cnblogs.com/JahanGu/p/9884344.html
把公钥导入到authorized_keys文件里面
cat id_rsa.pub>>authorized_keys
也可以直接打开公钥复制里面的内容粘贴到authorized_keys文件里,一行一个;
cd /home/git mkdir .ssh chmod 755 .ssh touch .ssh/authorized_keys chmod 644 .ssh/authorized_keys
4.初始化git仓库
选定一个目录作为我们的git仓库,例如:/home/mygit/demo.git
cd /home
mkdir mygit
chown git:git mygit/
cd mygit git 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.txt
git add .
git commit -m 'test'
git push origin master
此时你到服务器找这个test.txt文件是看不到的
(注意 --bare参数创建的裸仓库,就是没有工作区的,提交上来的文件是看不到的)
(1) 如果要创建一个可以看到项目文件的仓库就按照下面操作执行
git init demo.git
cd demo.git
git config receive.denyCurrentBranch ignore
最后一句命令是允许文件上传到远程服务器,不执行这句,客户端无法提交文件到服务器
其实就是在/home/mygit/demo.git/.git/config文件里面添加了

接下来创建钩子在/home/mygit/demo.git/.git/hooks目录下新建文件post-receive
vim post-receive
#!/bin/sh
unset 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提交才会有文件
linux自建git仓库的更多相关文章
- linux配置远程Git仓库
一,安装git yum install git 二,在服务器(119.28.1.1)目录( /git/admin )上创建一个仓库 cd /git/admin touch aaa.html git i ...
- 如何在Linux下使用Gitblit工具创建Git仓库服务
嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性 ...
- git学习笔记02-创建一个仓库提交一个文件-原来就是这么简单
打开安装好的git bash,设置你的git信息 (这个随便写就行) 初始化一个Git仓库,分三步.(创建文件夹也可以手动创建,也可以命令行创建) 第一步,进到一个目录 cd e: 第二步,创建一 ...
- 【转】linux之自建yum仓库
原链接:http://www.live-in.org/archives/1410.html 平时使用yum方式安装更新软件,可以自建一个yum源,同步官方更新源,这样如果本地有机器要升级的话就可以直接 ...
- Linux git 在自己的服务器上建立 git 仓库(repository)
Linux git 在自己的服务器上建立 git 仓库(repository) 服务器端: 在这里使用 ssh 方式登陆: ssh [username]@server_address(建议用超级用户登 ...
- Linux 搭建git 自己拉取本地 git pull,其他地方的git仓库拉取代码
Linux 下建立 Git 与 GitHub 的连接 Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台. GitHub 利用 Git 极其强大的克隆和分支功能, ...
- 在Linux上搭建私有git仓库
最近在学Linux,顺便将自己的服务器用起来,不然又得废弃一年.这次是跟着网上的教程做一个简单的git私有仓库,复杂完整的git系统还需使用gitlib系统. 首先在linux上安装git yum i ...
- Linux环境下搭建Git仓库
1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum ...
- 本地git仓库推送到服务器自建的git仓库实现目录文件同步教程
首先,先在服务器上安装git,如果有git的话就不用走这一步了 yum安装git [root@iZuf6fazwjb6lb3z82smzoZ ~]# cd src/ [root@iZuf6fazwjb ...
随机推荐
- slave have equal MySQL Server UUIDs原因及解决
最近在部署MySQL主从复制架构的时候,碰到了"Last_IO_Error: Fatal error: The slave I/O thread stops because master a ...
- yii2 controller发送json数据给前端
最近要用yii2把之前老项目重构一下,因为前端打算用vuejs,所以Yii2前端那一套就放弃了,直接给前端传json数据 控制器代码: $response = Yii::$app->respon ...
- scrapy爬虫系列之六--模拟登录
功能点:如何发送携带cookie访问登录后的页面,如何发送post请求登录 爬取网站:bilibili.github 完整代码:https://files.cnblogs.com/files/book ...
- django的framework优化
1.优化framework的性能,解决restapi调用慢的问题 ①预加载,关联查询时做缓存,序列化前简单调用setup_eager_loading ,这个需要确定sql查询调用情况(根据数据库结构确 ...
- phpstorm psr2样式.xml
将如下内容保存为 .xml 格式 <code_scheme name="Default"> <PHPCodeStyleSettings> <optio ...
- Spark UI (基于Yarn) 分析与定制
转载自:https://yq.aliyun.com/articles/60194 摘要: 这篇文章的主旨在于让你了解Spark UI体系,并且能够让你有能力对UI进行一些定制化增强.在分析过程中,你也 ...
- PAT 1100 Mars Numbers[难]
1100 Mars Numbers (20 分) People on Mars count their numbers with base 13: Zero on Earth is called &q ...
- Selenium之IE浏览器的启动问题及解决
前面有篇文章说到启动IE浏览器时,会出现以下错误提示: 浏览器启动之后,页面不会自动输入代码设置的地址,如下图展示 查看报错语句,发现原来是浏览器比例调的不正确,修改浏览器比例为100%即可解决该问题
- 学习Mysql的记录贴 记录的内容是 指令的试用
前言:操作系统是WIn7 64位 旗舰版 ,Mysql的版本是mysql-5.7.10-winx64 是社区版 就是所谓的最后的免费版本. 下载后 解压 然后配置my.ini文件. ××××××× ...
- 6.1 Controllers -- Introduction
一.Controllers 1. 在Ember.js中,controllers允许你使用展现逻辑装饰你的models.通常,models将会有保存到服务器的属性,然而controllers将会有不需要 ...