在服务器(CentOS)上使用 git 部署项目

主要流程:

  • 本地 git push 至 git 仓库更新代码。
  • 服务器上 git pull 从 git 仓库获取更新。

这里的 git 仓库有两种方式实现:

  • 使用第三方 gitlab 存储与管理代码。
  • 在服务器上搭建自己的 git 仓库来存储与管理代码。

使用 gitlab 网络可能会比较慢:D

方式一:使用 gitlab 仓库

  1. 服务端使用 yum 全局(-y)安装 git 。
$ yum -y install git
  1. 客户端(mac)安装 git。

如果你的 mac 还没有安装过 git,只需要打开终端,输入 git,系统会自动提示你安装 git ~

  1. 客户端(win)安装 git。

在 windows 上需要下载 git 安装包,这里提供官网的地址(git官网下载),安装即可。

  1. 查看 git 安装版本:
$ git --version

mac 上打开终端(command + 空格,搜索“终端”);

win 上打开 git 客户端;

  1. 服务端与客户端创建 git 用户。
# 配置用户名与邮箱
$ git config --global user.name "yourname"
$ git config --global user.email "youremail"

# 生成 ssh 密钥
$ ssh-keygen -t rsa -C "youremail"

# mac 查看 ssh 密钥
$ cat ~/.ssh/id_rsa.pub

# win 的密钥文件在 /User/yourname/.ssh/id_rsa.pub

~/.ssh/id_rsa.pub 文件内容全部复制到 gitlab.com [setting -> SHH-keys -> key] 中,保存。然后在本地查看是否连接成功:

$ ssh -T git@gitlab.com
  1. 在 gitlab 上创建项目,复制 ssh 地址,服务端客户端上克隆这个地址就可以了。

方式二:在服务器上搭建 git 仓库

  1. 服务端使用 yum 全局(-y)安装 git 。
$ yum -y install git
  1. 创建服务端的用户:git。
# 在 /usr/home/ 创建用户 git 的目录
# 这个目录等会还会存储来自客户端的 ssh-keys
$ cd /usr/home
$ useradd git
$ passwd git
  1. 配置用户 git 的权限。
# 禁用 git 用户 shell 登陆
$ vi /etc/passwd

# 修改为如下,一般在最后一行:
git:x:1000:1000::/home/git:/usr/bin/git-shell
  1. 创建一个 git 仓库。
# 在 /usr/local/git 下创建 test 项目
# 创建一个目录 git 作为所有的项目文件夹
$ cd /usr/local
$ mkdir git

# 创建 test 项目仓库
$ git init --bare test.git
  1. 分配 git 仓库的权限。
$ chown -R git:git test.git
  1. 服务器上加入客户端的 git 密钥。
# 本地查看密钥复制文件所有内容
$ cat ~/.ssh/id_rsa.pub

# 服务端打开 /home/git/.ssh/authorized_keys 文件
# 将复制内容粘贴进去,保存退出
$ vi /home/git/.ssh/authorized_keys

/home/git/.ssh/ 的 .ssh 目录需要自己创建。

  1. 客户端克隆服务器上的项目。
$ git clone git@xxx.xx.xxx.xx:/usr/local/git/test.git

输入 git 用户的密码就可以了。

  1. 服务端克隆项目。
# 进入你的项目文件夹
$ cd /data
$ git clone git@127.0.0.1:/usr/local/git/test.git

以后更新代码就在 /data/test 目录下 git pull 一下。

附录:git 常用命令

  • git status 查看当前变更的文件。
  • git add . 将所有变更本地缓存。
  • git commit -m '更新说明' 添加本次更新的说明。
  • git push 推送本地的更新至远程分支。
  • git pull 获取远程分支的的更新。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 3,531评论 4 36
  • 昨天是农历九月初九,又称重阳节。 年年岁岁花相似,岁岁年年人不同。 最大的痛苦莫过于,树欲静而风不止,子欲养而亲不...
    洋葱_a081阅读 146评论 0 0
  • 新搬进来的法国人,老是在我比划着讲述什么的时候略略的面带微笑看着我,在这个统统是外国人的share house里,...
    winkkkk阅读 323评论 0 0
  • 在自己的认知里,一直都以为工笔画比写意画难,写意画随意些,工笔画精致些。最近终于有个机会可以学工笔画了,很是高...
    米拉1977阅读 631评论 10 12