原来一直使用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. Java中Unsafe类详解

    http://www.cnblogs.com/mickole/articles/3757278.html Java不能直接访问操作系统底层,而是通过本地方法来访问.Unsafe类提供了硬件级别的原子操 ...

  2. linkin大话面向对象--抽象类

    abstract [非private访问修饰符] 返回值类型 方法名称(参数列表); 当编写一个类时,我们往往会为该类定义一些方法,这些方法时用来描述该类的行为方式,那么这些方法都有具体的方法体. 但 ...

  3. 准备:新V8即将到来,Node.js的性能正在改变

    V8的Turbofan的性能特点将如何对我们优化的方式产生影响 审阅:来自V8团队的Franziska Hinkelmann和Benedikt Meurer. **更新:Node.js 8.3.0已经 ...

  4. 网卡bond技术

    概览: 目前网卡绑定mode共有七种(0~6)bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种: mode=0:平衡负载模式,有自动备援,但需要&quo ...

  5. oracle游标的知识点

    游标: 就是一个结果集(ResultSet) 游标语法: CURSOR 光标名 [(参数名 数据类型[,参数名 数据类型])] IS SELECT 语句; eg. cursor c1 is selec ...

  6. js结合方式:

    1. 在页面中使用script标签,在标签中书写js代码.<head><script type="text/javascript">    alert(&q ...

  7. div仿td标签属性

    链接:https://pan.baidu.com/s/1kW1At9d 密码:g0he 这里说的div是指固定大小的,动态往里面填充文字的时候,文字一直水平垂直居中(换行也是).就和td标签一样.当然 ...

  8. js、jQuery实现2048小游戏

    2048小游戏 一.游戏简介:  2048是一款休闲益智类的数字叠加小游戏 二. 游戏玩法: 在4*4的16宫格中,您可以选择上.下.左.右四个方向进行操作,数字会按方向移动,相邻的两个数字相同就会合 ...

  9. SpringMVC源码情操陶冶-DispatcherServlet类简析(一)

    阅读源码有利于陶冶情操,此文承接前文SpringMVC源码情操陶冶-DispatcherServlet父类简析 注意:springmvc初始化其他内容,其对应的配置文件已被加载至beanFactory ...

  10. selenium打开chrome浏览器代码

    import os from selenium import webdriver chromedriver = "C:\Program Files (x86)\Google\Chrome\A ...