利用git向ubuntu服务器更新python接口代码

 nadia     2019-02-14     1480     0   

欢迎来到银盒子的世界~

用源码,往服务器更新代码,就显的太low了,所以,银盒子学习了,如何用git往服务器上更新代码,具体流程如下:

服务器端准备工作
1.新建了用户:
    useradd -m deployuser
    passwd deployuser #设置该用户的密码,也可根据喜好配置成免密码登陆
    然后是输入两次密码
2.新建一个文件夹:
    mkdir /home/upload_mojigo/deploy
3.将这个目录的属主和属组都改为上面新建的用户deployuser
    cd /home.upload_mojigo  #进入这个目录
    chown deployuser:deployuser deploy
4.切换用户
    su deployuser
6. 进入项目根目录,初始化为git仓库
    cd deploy
    git init
7. 【重要】让仓库接受代码提交
                git config receive.denyCurrentBranch ignore
                [可选] git config core.worktree ~/www
                [可选] git config --bool receive.denyNonFastForwards false #禁止强制推送

至此,一个空的git仓库就在服务器上建好了,仓库的地址为:
                ssh://deployuser@服务器的ip地址/home/upload_mojigo/deploy/.git 

本地仓库准备工作(我用的sourcetree):
1.软件的工作栏:仓库 -> 添加远端 -> 添加,在名称上写staging,路径写为“ssh://deployuser@服务器的ip地址/home/upload_mojigo/deploy/.git”
2.下一行的最后一个,命令行模式,打开git的命令行,输入以下代码:
    git push staging master

回到服务器端:
 1. 更新服务端 git 仓库状态并检出文件
                cd /home/upload_mojigo/deploy
                git update-server-info
                git checkout -f
        OR:
                git checkout branch_name # 如果push的不是master分支
2.用ls看看文件更新进来没
3.设置服务器端更新钩子
    cd .git/hooks
    touch post-receive
    vim post-receive
    然后复制以下内容:
    #!/bin/sh
                 unset GIT_DIR
                 cd ..
                 git checkout -f

后续代码的更新:
1. github 有更新的时候 pull 更新本地部署仓库
2. 然后本地先 push 到测试服务器进行测试
3. 测试通过之后 push 到正式服务器进行上线
4. 代码的回滚:
    *服务器端回滚:推荐 git reset --hard HEAD^
    本地仓库回滚: 无需登陆服务器即可实现代码回滚,git reset HEAD^ 保留代码回滚,然后使用 git push remote_name local_branch_name -f 强制推送

使用过程中需要注意的问题:
     1. 需要约定好 git 不能更新的操作要怎么处理,比如新增数据库的字段,新安装必要的python包

发表评论