配置Git服务器,并实现自动同步[暂未连接到github库]

1.首先服务器和客户端都需要安装 git,这个就不说了.
创建 git 用户
2.在服务器上

# 创建git服务器
cd /www/gitBase
git init --bare www_lib.git  # 创建裸仓库,用作git服务器
chown -R git:git www_lib.git

# 初始化站点目录
cd /www/wwwroot/
git clone /www/gitBase/www_lib.git www
# 如果站点目录不为空
cd /www/wwwroot/www
git clone --no-checkout /www/gitBase/www_lib.git tmp
mv tmp/.git .  # 将.git管理文件移动到 www目录
rmdir tmp  # 没有用了,可以删掉
git reset --hard HEAD  # 初始化版本
#之后就可以将www目录里面的加入版本库提交了 
	#eg:  git add *; git commit -m"初始化"  ; git push;

#接下来配置自动同步
cd /www/gitBase/www_lib.git/hooks/
vim post-receive
#-------写入post-receive-----
#!/bin/bash
cd /www/wwwroot/www
sudo git reset --hard #  注 1
unset GIT_DIR # 还原环境变量
git pull origin master
#chown -R www:www *  # 将站点文件所有者改为www  
#------end------
#保存之后 记得给post-receive权限 
chmod +x post-receive
usermod -a -G www git # 将git用户加入到www用户组  避免站点目录没有写入权限

windows工作区 撸代码的地方

git init 
git pull git@your_ip:/www/gitBase/www_lib.git

注1:
sudo git reset --hard是解决报错Your local changes would be overwritten by merge. Commit, stash or revert them to proceed,这是因为拉取代码时发现本地代码有过修改,所以提示你提交一下项目目录代码,但我们并不要提交,于是使用sudo git reset --hard可以放弃项目目录修改(其实不是修改,只是跟git上的不同),让拉取的代码覆盖项目目录的代码,实现硬更新。

异常问题
1.不能自动更新
切换到 git 用户,到站点目录 /www/wwwroot/www 下

su git
cd /www/wwwroot/www
git pull origin master

出现如下提示:

![错误提示](https://img-blog.csdnimg.cn/20191205152434551.png)

很明显这是文件权限问题, 执行
chown -R git:git .git

至此一个单人的git服务器完成.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值