原来一直使用FileZilla来代码部署,去年使用git,代码版本管理,真TM好用,一起回顾下历程!

一. 代码部署方式及思路:

1. 使用FTP/SFTP工具,上传代码

2. git人工部署。1. 开发人员本地 - git push -> github/gitee 2. 使用ssh终端登录服务器 git pull -> 服务器

3. git自动化部署。开发人员本地 -git push -> 服务器ssh - hooks -> git checkout -f --> 更新代码

二. 自动化部署实现细节

1. 请先安装git,linux参见git官网: <a href="https://git-scm.com/download/linux" >https://git-scm.com/download/linux</a>

2. 为了安全起见,新建一个专门用于代码部署的无特权用户

 (1)  useradd -m deployuser
   (2) passwd deployuser(不建议不设置密码)

3. 此后分为两种情况:3.1代表初始化一个新项目  3.2 代表初始化一个已有项目

3.1. (1) 新建一个目录作为要部署代码的根目录,如:
       mkdir /home/deploy

  (2) 将新建目录的所有者和组权限改为上述的 deployuser

  chown -R deployuser:deployuser /home/deploy

  (3)  初始化git仓库

  cd /home/deploy

  git init

  (4) 让仓库接受代码提交

  git config receive.denyCurrentBranch ignore

  (5) 设置服务器更新钩子.

  cd .git/hooks

  mv post-receive.sample post-receive(如没有post-receive.sample文件,不要在windows下创建,否则有可能不成功,而应该mv post-update.sample post-update,把post-update)

  vi post-receive(或使用最low的办法本地编辑ftp上传)

  替换为一下

  #!/bin/sh
      unset GIT_DIR
      cd ..
      git checkout -f

  (6) 授予post-receive可执行权限

    chmod +x post-receive

  (7) 添加公钥,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的

    服务器ssh访问地址是:ssh://deployuser@ipaddress/home/deploy/.git   (ipaddress:服务器ip地址 )

  (8) 回到本地仓库,克隆服务器git仓库

    git clone deployuser@ipaddress/home/deploy/.git

  (9) 修改文件,上传,就可以为所欲为了。。

    git add . -> git commit -m "modify" -> git push -> 查看服务器是否已同步,且修改了工作区

  end

    

git一键部署代码到远程服务器(linux)(采坑总结)的更多相关文章

  1. Git push 提交代码到远程global user.name错误解决办法

    问题:安装了Git-1.9.4-preview和TortoiseGit等工具后,Git服务器开通了账号和密码并配置了邮箱.克隆了服务器代码到本地,按需求进行代码开发.提交本地代码到服务器时出现错误.具 ...

  2. IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别

    每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...

  3. Jenkins使用pipeline部署服务到远程服务器

    写这篇文章是对之前搭建Jenkins做的修改和完善,让jenkins更好的为我们服务 Docker搭建Jenkins服务 使用过程中遇到的问题: 为方便部署,打算将jenkins用到的jdk11.ma ...

  4. 【git】提交代码到远程仓库

    看完不用,就是一个字:忘! 之前学了两天git结果今天要用的时候,啥也想不起来.... 场景: 已有远程仓库: git@192.168.1.1:test/test.git 要提交代码到远程仓库的新分支 ...

  5. Git提交代码到远程服务器

    1.下载Git 不用说了,这个是必须的,也是最简单的步骤,地址如下: http://git-scm.com/download 这里会提供三个版本的下载地址,读者可以自行查找. 2.创建代码库 远程的代 ...

  6. git hook部署代码

    git 提供了钩子功能,当某个操作发生时,可以执行某个动作. ftp上传时没有文件比较,虽然可以winscp提供了同步功能但是不够强大,而且文件多了,会花费比较长的时间. 1.先在主机上搭建一个git ...

  7. 【Git】5、Git如何提交代码到远程仓库

    提交代码:如何把修改后的代码提交到远程仓库 文章目录 提交代码:如何把修改后的代码提交到远程仓库 1.同步远程代码 2.检查改动文件 3.添加文件到缓存 4.提交代码 5.推送代码 6.我的整个流程 ...

  8. IDEA一键部署SpringBoot项目到服务器

    1. 安装Alibaba Cloud Toolkit插件 2. 配置部署环境 2.1 为本次部署设置一个名字 2.2 选择被部署文件的生成方式 IDEA提供了三种方式:Maven Build,Uplo ...

  9. 使用Git上传代码到远程仓库

    1.进入文件夹,cd f:/test/ 2.初始化远程仓库,git init 3.添加代码,git add . (注意add后面的点前面有一个空格) 4.提交代码到远程仓库,git commit -m ...

随机推荐

  1. Redis 2种持久化模式的缺陷

    http://blog.csdn.net/hexieshangwang/article/details/47254087 一.RDB持久化模式缺陷 1.问题描述: 并发200路,模拟不断写Redis, ...

  2. whoops php调试库

    Whoops 适用于PHP环境的错误捕获与调试PHP库: whoops非常容易使用,它提供stackbased错误捕获及超美观的错误查看 测试效果如下 安装步骤(composer安装) 安装完成之后在 ...

  3. Django_验证码

    问题: 登录.注册.忘记密码时候,提交用户数据时候,需要用到用户填写验证码,如何生成验证码? 那,解决方法? 第三方模块 django-simple-captcha pip install djang ...

  4. 使用TransactionScope做分布式事务协调

    //场景是使用在多个数据库之间的协调,.NET 2.0使用一个新的类型 TransactionScope来进行协调,这与之前的COM+协调是相对来说更加方便的 //需要引用一个新的程序集:System ...

  5. HTML5图形绘制

    要在HTML5中绘制图形,首先要放置一个canvas元素 <canvas id="canvas" width="400" height="300 ...

  6. Matlab 多项式拟合、稳健滤波等实用函数

    Function summary http://www.biomecardio.com/matlab/index.html clinspace Curvilinearly spaced points ...

  7. fscanf和fprintf

    fscanf和fprintf fscanf的字符串是在键盘的缓冲区,fprintf是在显示器的缓冲区. 1.函数原型: int fprintf(FILE *fp, const char *format ...

  8. Nutch2.2.1在MyEclipse中的安装(window7环境)

    在https://svn.apache.org/repos/asf/nutch/branches/branch-2.2.1/网址里面可以找到Nutch2.2.1版本的资源文件. 1. 在MyEclip ...

  9. bzoj 4813: [Cqoi2017]小Q的棋盘 [树形背包dp]

    4813: [Cqoi2017]小Q的棋盘 题意: 某poj弱化版?树形背包 据说还可以贪心... #include <iostream> #include <cstdio> ...

  10. 如何使用JS实现banner图滚动

    通过JS实现banner图的滚动主要是定时器的应用 先新建好banner图的几张图片,最后一张与第一张用同一个,保证滚动的不间断 改好样式,需注意所有图片要在同行显示,否则不能向左滚动 声明一个函数, ...