利用git管理代码版本, 并且和服务器同步

Posted 海狸先森

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用git管理代码版本, 并且和服务器同步相关的知识,希望对你有一定的参考价值。

  上一次部署服务器好像已经是很久以前的事情了,  最近一段时间线上的内部工具都没出什么大问题, 最近提交都用svn, 都快忘了git 怎么用了。

  这次好好记录下来, 免得以后忘了又导出查找。

 

  第一步, 初始化git 仓库将代码纳入版本管理

  1.注意在本地 .gitignore 防止不需要的文件被上传到服务器

      /log/*  

      !/log/.keep

      /tmp

      /public/tmp

      /config/database.yml

  2.前往服务器    

    然后切换到阿里云上面  ssh [email protected], 切换到待部署目录, mkdir a_new_app_name, 进入新建目录, git init 。

    让仓库接受代码提交
                git config receive.denyCurrentBranch ignore
                [可选] git config core.worktree ~/www
                [可选] git config --bool receive.denyNonFastForwards false #禁止强制推送
     

            现在git在远程服务器上的地址为: ssh://[email protected]/应用部署目录在服务器上的路径/.git

   3.回到本地

    将远程服务器添加到本地仓库的远程仓库列表,使用名字来区分不同的服务器,如测试服务器可以叫做testing
             git remote add testing ssh://[email protected]/var/www/html/deploy/.git

    将本地代码提交到测试服务器上面
                git push testing master

    切到服务器代码部署目录 git checkout -f

 

  第二步, 上传数据, 把数据部署到数据库

    从数据库导出数据:  

      1.导出整个数据库: mysqldump -u用户名 -p密码  数据库名 > 导出的文件名 

      2.导出一个表,包括表结构和数据: mysqldump -u用户名 -p 密码  数据库名 表名> 导出的文件名 

      3.导出一个数据库结构 mysqldump -u用户名 -p密码 -d 数据库名 > xxx.sql

      4.导出一个表,只有表结构 mysqldump -u用户名 -p 密码 -d数据库名  表名> 导出的文件名 

    scp 指令把sql文件传到服务器上

    然后在服务器上把数据导到RDS, 指令: mysql -h xxx -u root -p dbname < filename.sql

    (导数据导的好累~ 虽然rails 的数据库迁移指令很方便, 不过遇到要迁移数据的情况就不大好用了, 有gem可以解决问题,

    但是遇到数据表分布比较复杂的情况就比较坑爹了。)    

  

  第三步, 配置线上环境

  走到这里就是安装各种依赖包, 命令行工具了

    安装依赖工具的一些报错:

    prince 工具 用于html 转pdf 功能很好很强大

    error while loading shared libraries: libgif.so.4: cannot open shared object file: No such file or directory

    sudo yum install giflib (解决问题TAT内牛满面)

 

    prince说字体找不到, 查到原因是需要巨硬的字体core, 第二条指令执行了挺久的, 似乎是文件一直找不到, 估计各种路径找吧,

    快绝望的时候他居然安装好了, 好了, 了....

    yum install curl cabextract xorg-x11-font-utils fontconfig

    rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

    剩下的基本到官网下载了, 上传到服务器就OK, 没遇到太坑的依赖。

 

参考资料:

  使用git做服务器端代码的部署   https://www.douban.com/note/407034249/

 

以上是关于利用git管理代码版本, 并且和服务器同步的主要内容,如果未能解决你的问题,请参考以下文章

git 笔记

服务端CVS本地Git的版本控制:利用git钩子自定义工作流

git实战

Git基础和入门

Git版本管理及代码上线

第五讲:利用云服务器搭建个人git服务器