5k 次阅读  ·  读完需要 15 分钟

0

参考文章

简述

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

2、创建Git用户及所属组

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

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

5、创建证书登录

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

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

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

1.1安装Git依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

1.2.安装Git

yum install -y git

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

2.1创建用户组

groupadd git

2.2添加git用户组下的用户

adduser phper -g git

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

passwd phper

Changing password for user git.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

3、建立git仓库

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目录

cd /home/phper

mkdir .ssh

chmod 700 .ssh

touch .ssh/authorized_keys

chmod 600 .ssh/authorized_keys

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

cd .ssh

rz

将公钥添加进authorized_keys中

cat id_rsa.pub >> authorized_keys

5、克隆到本地

右键选择git克隆

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

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

#!/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的所有者和权限

chmod -R 774 post-receive

chown phper:git post-receive

最后在www下

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

赞  |   0收藏  |  9

linux centos git 自动更新,在centos上搭建git服务器并自动同步代码相关推荐

  1. centos+7虚拟机web服务器,CentOS7上搭建WEB服务器

    mysql 安装 直接yum install mysql-server是不可以的 1 wget http://repo.mysql.com/mysql-community-release-el7-5. ...

  2. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  3. 这可能是东半球最详细的Linux下搭建Jenkins服务器实现自动打包的教程(上)

    前言:作为开发者,我们都遇到过这样一个问题,项目在测试期的时候,测试总会找我们打各个环境的包,什么生产包.prd包.pre包,每次都是我们打完包再发给测试.可是打包是要时间的啊,项目小还好,项目大的话 ...

  4. 利用win10的Linux子系统在PC上搭建git远程仓库

    在win10上搭建一个git远程仓库 在win10上安装ubuntu子系统 在控制面板中开启linux子系统 下载安装Ubuntu子系统 在Ubuntu子系统上安装配置git远程仓库 建立一个git仓 ...

  5. centos dhcp服务器文件,Centos8上搭建dhcp服务器

    Centos8上搭建dhcp服务器 首先我的环境是在本地的VMware虚拟机,所以先将VMware中的dhcp服务关闭 关闭防火墙,关闭selinux这些必须关闭: systemctl stop fi ...

  6. android应用程序的自动更新升级(自身升级,通过tomcat),[SaltStack] Minion-conf自动更新...

    minion-conf配置文件自动更新, 加载 minion-conf是每个minion自身以来的配置, 为了方便我们在中心管控机上(Master)统一配置, 然后下发文件, 进而使得Minion能够 ...

  7. linux服务器上svn的log_Linux服务器上搭建svn服务器

    背景 项目开发中需要版本控制,而我们经常使用的是在windows系统上搭建svn服务器,下面介绍在Linux系统(CentOs)上搭建svn服务器. 1. 使用yum安装svn 使用yum安装svn, ...

  8. 在Windows上搭建Git Server

    Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用. 那么私有项目,如何用Git进行代码版本控制呢?我们可以自 ...

  9. Git学习系列之Windows上安装Git之后的一些配置(图文详解)

    不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...

  10. 在群晖NAS上搭建 Git Server

    概述 事前准备 配置NAS 1 在群晖NAS上安装 Git Server 套件 2 创建用来存放git仓库的共享目录 3 创建用来使用git的普通用户 4 设置 Git Server 允许刚创建的用户 ...

最新文章

  1. c# 如何让tooltip显示文字换行
  2. linux 挂载 nfs 权限,linux – 如何允许写入已挂载的NFS分区
  3. SpringBoot文件上传时提示FileUploadBase$SizeLimitExceed
  4. rest_framework02:修改数据/校验钩子/read_only和write_only
  5. java 判断进程状态_获取远程服务器上 Java 进程的运行状态
  6. java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
  7. c语言中isdigit函数_在C / C ++中使用isdigit()
  8. 支撑江苏移动百亿级话单实时监控是这样实现的
  9. codeblock输出中文乱码问题
  10. HCIA-Storage 存储工程师学习笔记——1. 存储技术趋势
  11. VS2017离线安装
  12. word中设置多级标题
  13. 多元线性回归分析spss结果解读_spss多元线性回归结果解读
  14. 注册微信公众平台测试账号
  15. win10浏览器加载很慢_Win10系统打开网页速度很慢的解决办法
  16. matlab求解不等式方程组解集,matlab求不等式方程组的可行解
  17. 推荐几个帮你避坑和赚钱的公众号
  18. 羊城杯2022--Writeup
  19. Kubernetes kube-proxy 如何与 iptables 完美配合使用
  20. PMO如何有效搭建项目管理体系︱伯俊软件PMO经理李双燕

热门文章

  1. SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度(行列互换)
  2. [收藏学习]Openstack中Keystone及dashboard安装参考
  3. JAVA深入研究——Method的Invoke方法(转)
  4. json_encode
  5. Oracle SQL性能调整注意事项
  6. 消息分流器-HANDLE_MSG
  7. MSN登陆以后没有响应处理方法
  8. 仿微信app项目流程
  9. 3.abp框架code first方式创建表
  10. PHP比较两个时间戳相差天时分秒