原来一直使用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

    

最新文章

  1. Daily Scrum Meeting ——TenthDay
  2. web前端开发必懂之一:JS继承和继承基础总结
  3. linux基本命令--学习记录
  4. iconv 文件编码相互转换
  5. Linker scripts之Intro
  6. &#39;System.Web.Http.GlobalConfiguration&#39; does not contain a definition for &#39;Configure&#39;
  7. 【 D3.js 高级系列 — 7.0 】 标注地点
  8. Android无法生成R文件的终极解决办法
  9. Ubuntu的挂起和休眠
  10. 可以让PHP编程事半功倍的类库
  11. ashx页面中context.Session[&quot;xxx&quot;]获取不到值的解决办法
  12. keytool 生成 Android SSL 使用的 BKS
  13. 共同发展一个以上的开发者账户多台电脑 证书 p12 型材 进出口
  14. 简单字符串匹配 Brute
  15. 做一枚精致的程序猿,Fighting!
  16. linux配置上网
  17. linux/unix解压缩
  18. MySQL主从1205报错【转】
  19. Cocos2d-x中文显示乱码
  20. 黄聪:JS数学计算精度修正

热门文章

  1. MySQL的char和varchar针对空格的处理
  2. 译-HTTP-GET HTTP-POST SOAP protocol for ASP.NET services的异同
  3. junit测试套件
  4. 配置struts2拦截器
  5. JDBC (二)
  6. linux(ubuntu或Deepin等)+win7双系统升级win10出现grub解决办法
  7. Eclipse运行Java简单实例
  8. 查看Eclipse运行工程时使用的Command Line
  9. mvn 手动安装jar 到本地库
  10. 使用xUnit为.net core程序进行单元测试(3)