利用git管理代碼版本, 並且和服務器同步


  上一次部署服務器好像已經是很久以前的事情了,  最近一段時間線上的內部工具都沒出什么大問題, 最近提交都用svn, 都快忘了git 怎么用了。

  這次好好記錄下來, 免得以后忘了又導出查找。

 

  第一步, 初始化git 倉庫將代碼納入版本管理

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

      /log/*  

      !/log/.keep

      /tmp

      /public/tmp

      /config/database.yml

  2.前往服務器    

    然后切換到阿里雲上面  ssh xxx@xxx.xxx.xxx.xxx, 切換到待部署目錄, 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://xxx@xxx.xxx.xxx.xxx/應用部署目錄在服務器上的路徑/.git

   3.回到本地

    將遠程服務器添加到本地倉庫的遠程倉庫列表,使用名字來區分不同的服務器,如測試服務器可以叫做testing
             git remote add testing ssh://deployuser@ipaddress/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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM