在linux服务器部署git仓库

1.在linux服务器上安装git

使用yum安装

yum install -y git

安装完后,查看 Git 版本:

git --version

可以看到版本号,表示安装成功。

2.创建 git 用户来管理 Git 服务

创建用户:

useradd git

设置密码:

passwd git
3.创建git仓库

创建存放git仓库的文件夹:

mkdir -p var/git/default.git

初始化:

git init --bare var/git/default.git

把git仓库拥有者改为git:

chown -R git:git var/git/default.git/

到此,服务器git仓库部署成功,现在我们就可以在本地客户端,git克隆服务器上git仓库来进行代码管理和多人协作:

git clone git@<服务器ip>:/var/git/default.git 

克隆需要输入密码,密码为服务器添加的git用户密码。在这里推荐使用SourceTree,不仅拥有精美简洁的界面,还能记住密码,不用每次推送和拉取都输入密码。

如果你下载安装了SourceTree最新的版本,而且一直卡在了用户注册或者登录页面,可以使用以下方法跳过此步骤:

1.打开 我的电脑,在最上方的地址栏直接输入以下地址: %LocalAppData%\Atlassian\SourceTree\

2.在这个目录下新建一个名为 accounts.json 的文件,输入一下代码,保存即可。

[
  {
    "$id": "1",
    "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",
    "Authenticate": true,
    "HostInstance": {
      "$id": "2",
      "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",
      "Host": {
        "$id": "3",
        "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",
        "Id": "atlassian account"
      },
      "BaseUrl": "https://id.atlassian.com/"
    },
    "Credentials": {
      "$id": "4",
      "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",
      "Username": "",
      "Email": null
    },
    "IsDefault": false
  }
]
5.修改git用户使不能登录到服务器

为了服务器安全,之前在服务器端创建的 git 用户使其不允许 ssh 登录服务器
vi /etc/passwd 编辑文件,找到:

git:x:1000:1000::/home/git:/bin/bash

修改为:

git:x:1000:1000::/home/git:/bin/git-shell

注意这里的1000:1000用户标识号:组标识号,不同服务器创建可能不一样,这里只需要修改/bin/bash/bin/git-shell

到这里,在linux服务器部署git仓库就已经完成了。

6.利用钩子同步服务器代码

如果在客服端提交代码希望在服务器同时更新,这里我们可以使用git仓库的hooks目录下新建一个post-receive文件来进行更新,具体操作如下:

cd /var/git/default.git/hooks
vi post-receive

在post-receive里写入以下代码:

#!/bin/bash
git --work-tree=/home/website/wwwroot checkout -f

接着键入ESC->eq 写入保存。同时把文件拥有者改为git,并且给git赋有执行权限:

chown git:git post-receive
chmod 744 post-receive

/home/website/wwwroot 这里可以替换为你想更新的文件夹,同时要在该文件夹给git写入权限,这里我们可以把git用户加入root用户组,同时把要更新文件夹的用户组添加可写入权限:

usermod -aG root git 
chmod -R 775 /home/website/wwwroot
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值