Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在centos上搭建git服务器并自动同步代码

在centos上搭建git服务器并自动同步代码

作者头像
拓荒者
发布于 2019-03-15 10:51:38
发布于 2019-03-15 10:51:38
2K00
代码可运行
举报
文章被收录于专栏:运维经验分享运维经验分享
运行总次数:0
代码可运行

参考文章

CentOS安装Git实现多人同步开发 centos中GIT服务器搭建及使用密钥连接

简述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1、服务器上安装Git依赖及Git

2、创建Git用户及所属组

3、服务器上初始化Git仓库

4、安装Git客户端并生成公钥

5、创建证书登录

6、使用Git Bash克隆服务器上的空仓库

7、将本地库项目推送到服务器

1、服务器上安装Git以及依赖

1.1安装Git依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

1.2.安装Git

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y git

2、创建”用户组“和”用户“,用来运行git服务

2.1创建用户组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
groupadd git

2.2添加git用户组下的用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adduser phper -g git

2.3为用户名为phper 的用户设置密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   passwd phper
   Changing password for user git.
   New password: 
   Retype new password: 
   passwd: all authentication tokens updated successfully.

3、建立git仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir gitroot
chmown phper:git gitroot
cd /gitroot
git init --bare project.git
chmown -R phper:git project.git
chmod 774 -R project.git
cd ../
chmod 750 gitroot

4、安装Git客户端并生成公钥

4.1下载git客户端安装好后右键选择Git GUI Here->Help->Show SSH Key

就能得到私钥和公钥

打开Puttygen

load之前生成好的私钥

得到格式化后的私钥,点击保存私钥

配置小乌龟

4.2创建证书登录 切换到phper目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /home/phper
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

然后将客户端的公钥上传到.ssh目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd .ssh
rz

将公钥添加进authorized_keys中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat id_rsa.pub >> authorized_keys

5、克隆到本地 右键选择git克隆

这样就把服务器的空仓库拉取下来了。

现在我们能够正常的提交代码到服务器的git,但是还不能自动同步,我们还需要修改服务器的hooks/post-receive文件。具体post-receive内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
unset GIT_DIR  
DeployPath="/alidata/www/project"
LogPath="/alidata/gitroot/project.git/hooks"  
   
echo -e "\n=================  `date +"%Y-%m-%d %H:%M:%S"`  ===============\n" >> $LogPath/gitsync.log 2>&1 
cd $DeployPath  
   
#git stash  
#先拉取再合并
git pull origin master  >> $LogPath/gitsync.log 2>&1 

#强制与远程服务器同步,不与本地合并,只能通过提交的客户端提交的方式修改代码。
#git fetch --all  
#git reset --hard origin/master  
   
#time=`date`  
#echo "web server pull at webserver at time: $time."  
echo "================================================"  >> $LogPath/gitsync.log 2>&1 

更改post-receive的所有者和权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod -R 774 post-receive
chown phper:git post-receive

最后在www下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir project
chown -R phper:git project
chmod -R 774 project
cd /alidata/www
git clone /gitroot/project.git

好了git的同步就弄好了

如果同步用不了,打开hooks/gitsync.log查看错误日志

可能预见的错误

1、fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree.

同步的项目文件夹没有建立---------------解决办法:在www下建立project项目文件夹

2、fatal: Not a git repository (or any of the parent directories): .git

项目文件里没有git初始化------------------解决办法:在www路径下执行git clone /alidata/gitroot/project.git

3、error: cannot open .git/FETCH_HEAD: Permission denied

git在项目目录没有写入权限---------------解决办法:修改所有者以及权限 chown -R phper:git project / chmod -R 774 project

4、每次pull push的时候还是要输入密码

秘钥没有起作用-----------------------------解决办法:/var/log/secure查看一下日志,是否是.ssh的权限问题  chmod 700 .ssh  chmod 600 .ssh/authorized_keys

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git 服务器搭建
接下来我们将以 Centos 为例搭建 Git 服务器。 1、安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git 接下来我们 使用root账户创建一个git用户组和用户,用来运行git服务: $ groupadd git $ adduser git -g git 2、创建证书登录 收集所有需要登录的用户的公钥,公钥位于id_rsa.pub(
joshua317
2018/04/16
2.1K0
【腾讯云的1001种玩法】Hello Hexo之静态博客搭建+自动部署
饶文津
2017/04/13
4.9K0
将个人博客迁移到云服务器上
之前通过github 和coding 来搭建的个人博客,但是搜索引擎一直不是很好,并且总感觉不稳定,访问很慢。最近刚刚买了一个云服务器,所以就打算将个人博客迁移到云服务器上。
程序员爱酸奶
2020/03/16
2K0
将个人博客迁移到云服务器上
小组级git服务器搭建
每个需要使用git服务器的工程师,自己需要生成一个ssh公钥 进入自己的~/.ssh目录,看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa 或者 id_rsa。 .pub 文件是公钥,另一个文件是密钥。假如没有这些文件(或者干脆连 .ssh 目录都没有),你可以用 ssh-keygen 的程序来建立它们,该程序在 Linux/Mac 系统由 SSH 包提供, 在 Windows 上则包含在 MSysGit 包里:
EltonZheng
2021/01/22
7960
将Hexo部署到云服务器
看到群里好多人问如何将Hexo部署到云服务器。按我的思想,如果有服务器谁还用Hexo?但居然还真有人。趁着上个月白嫖的腾讯云的机器还没过期,赶紧重装个系统,来咕一篇Hexo如何部署到云服务器。
Dreamy.TZK
2020/05/25
10K0
初学Git及简单搭建git服务器和客户端
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。 Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
拓荒者
2019/07/25
2.5K1
Git服务器搭建
  Git是目前世界使用最广泛的分布式版本控制系统,它是由林纳斯·托瓦兹(Linus Torvalds)创作,最初的目的是为了更好地管理Linux内核开发而设计的。
那一叶随风
2018/08/22
2.6K0
Git服务器搭建
搭建自己的git 代码服务器
搭建自己的git 代码服务器 git server 安装配置 1、切换到root用户 stevenrao@server:~$ su - root 2、创建git组 root@server:~$ groupadd git root@server:~$ groupadd user 3、添加git账户 root@server:~$ useradd git -g git -m -s /bin/bash root@server:~$ usermod -G git,user git #把git同时加入git组和
小小科
2018/05/02
2.1K0
搭建Git服务器(二) 原
出现该提示,说明可以登录,因为git用户的shell禁止该用户登录虚拟机,所以在此输入密码后直接退出。
阿dai学长
2019/04/03
5030
CentOS搭建Git服务器及权限管理
声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考。 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSSH,如果您的系统没有,请自行安装。 查看ssh版本 $ ssh -V # 输出以下表示没问题,可以继续。 版本可能不一致,能用即可。 OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013 避免系统环境和其他的不一致,请核对您系统的版本,其他发行版请对应修改。
老马
2018/04/16
2.9K0
从零搭建Hexo博客并部署腾讯云服务器
腾讯云服务器已经买了好一阵子了,拖延到现在才搭博客,参考各个社区里挺多教程,最后选择使用Hexo来作为自己的博客框架,好处是不用自己造轮子,而且有很多漂亮的主题可以拿来用。今天上午把搭博客过程做个小结,希望对有想法要做自己的博客的同学们有一些帮助。
用户7978588
2020/12/19
2.4K0
Hexo 部署至云服务器(宝塔面板)
hexo 博客部署方法有好多种,github pages、gitee pages(pro)、vercel,cloudflare page、阿里云oss、腾讯存储桶等等这些不需要购买服务器的部署方式。一般大部分都用以上方式部署自己的hexo博客,但也有少部分部署在自己服务器的同志。
Qwe7
2022/03/30
6K0
git服务器搭建
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
一朵灼灼华
2022/08/05
1.6K0
将Hexo部署到腾讯云轻量应用服务器
进入腾讯云,点击右上角控制台,选择轻量应用服务器(如果没有的话,就直接使用上面的搜索功能) 找到自己的服务器,点击 更多→管理,然后选择重置密码,重置初始密码
十玖八柒
2022/08/01
8K1
将Hexo部署到腾讯云轻量应用服务器
在CentOS下搭建自己的Git服务器 转
首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。 有了CentOS,那么如何搭建Git服务器呢? 1、首先需要安装Git,可以使用yum源在线安装:
尚浩宇
2018/08/17
9710
向 Git 服务器添加 SSH 公钥
在网上很少找到文章有提到如何将自己的 Git 远程仓库配置成可以通过 SSH 公钥方式认证的,而几乎清一色都是告诉你怎么通过 web 界面向 GitHub 添加 SSH 公钥。LZ 在网上查找了一番,终于找到了办法。
全栈程序员站长
2022/07/11
2K0
搭建服务器上的GIT并实现自动同步到站点目录(www)「建议收藏」
前言:当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,GIT就是一个很好的选择。当然,既然是一个共有平台,那么把这个平台放到个人计算机上明显是不合适的,因此就要在服务器上搭建GIT了。另一个需求是,我们在本地开发,然后推送到服务器上,并且自动同步到web站点目录,这样就可以直接看到网页效果了,这就要实现自动同步。下面我带领大家实现这么一个功能。
全栈程序员站长
2022/07/11
7510
Hexo部署至服务器(Ubuntu 20.04)
本文将介绍如何从零开始,将Hexo项目部署到服务器(Ubuntu 20.04)上。
花猪
2022/02/22
2.9K1
Hexo部署至服务器(Ubuntu 20.04)
相关推荐
Git 服务器搭建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文