V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
asing
V2EX  ›  git

git网站发布管理

  •  
  •   asing · 2013-11-08 16:50:45 +08:00 · 6631 次点击
    这是一个创建于 4040 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位好:

    对GIT服务器还是有些陌生,搜索后还是不得要领,特来请教,望指点迷津,谢谢
    我的问题之前提过
    http://www.v2ex.com/t/84895

    为了更好解决问题,我把疑问点写出来

    git的使用还是会用一点的,但是服务器端还是非常陌生。

    1.git服务器端目录怎么配置合适?
    具体点,我的网站目录是/src/www
    git的服务器端目录放在/git/projcet
    这样是否比较好

    2.本地开发好后推送到git服务器,如何把更改过的文件发布到网站?
    具体点,就是怎么让改动生效,自动化的确实非常陌生,一点都没有接触过

    3.服务器管理我用证书登录,限制用户登录,每次git客户端推送到服务器端是否也用证书管理比较安全些,有没有要注意的地方。

    还望大家给与指点,项目已经发布了,但是每次更新太太太麻烦而且容易出错,这次下了决心要用这样管理代码,谢谢。
    12 条回复    1970-01-01 08:00:00 +08:00
    mongodb
        1
    mongodb  
       2013-11-08 17:05:09 +08:00
    git的代码不要直接用于web目录跑,这个肯定的。
    然后,你可以搜索一下git hooks 肯定能找到不少讲如何部署的过程,跟svn hook差不多。你之前那个帖子里人家都说了啊……

    至于服务器端的目录配置问题,这个没有任何经验和技巧可言,爱怎么来怎么来,就跟你办公桌子上爱怎么布置就怎么布置一样,纠结于这个可以去死。

    首选通过证书推送。这是我的个人看法。

    最后,我想问下,那你之前那个“太太太麻烦而且容易出错”,又是怎么弄的...我比较关心的是这个。
    mengzhuo
        2
    mengzhuo  
       2013-11-08 23:50:41 +08:00
    1. 可以git 某分支源即生产代码
    2. git hook + fabric
    3. ssh key是必须的

    其实可以用rsync直接同步两边的代码,但是git branch的功能就不能体现出来了
    msg7086
        3
    msg7086  
       2013-11-09 05:30:46 +08:00
    1. 服务端善用bitbucket,如果你刚起步还不太懂架设git repo的话,用现有的服务是比较好的
    2. 善用git flow,staging server抓develop或者release,production server抓master
    hook楼上说了我就不多说了。
    msg7086
        4
    msg7086  
       2013-11-09 05:36:50 +08:00
    看了你之前的帖子,看来你已经用了bitbucket了。
    我说下我这边的开发过程吧。
    本地做一个virtualbox+share folder,或者直接vagrant,分支管理用git flow,本地开发完测试完再commit,一个项目跑通过以后push到bitbucket上然后创建pull request做代码审阅,简单的分支合并可以自己直接merge,复杂的项目可以让上级审阅,通过了再merge。merge完本地切到develop下pull然后继续开发。
    一个milestone做一个release,然后扔给master再从production上pull就行了。

    我们现在才进行到staging server阶段,开发是在github上进行的,要做什么事情先开issue,然后开分支,测试完以后用pull request来close issue。等我们到production server阶段了可以再继续交流。

    仅供参考
    supersheep
        5
    supersheep  
       2013-11-09 17:52:53 +08:00
    @msg7086 有几个疑问,这里的staging和release分别是指什么阶段?放到github上去是不是就要注意重要配置不能提交这种问题了?
    msg7086
        6
    msg7086  
       2013-11-09 20:43:43 +08:00
    @supersheep 配置肯定不能直接提交啊,要么做sample让用户自己改,要么用环境变量+默认值

    staging server的话是指集成测试环境,release branch是发布分支,是直接上生产环境用的版本。
    asing
        7
    asing  
    OP
       2013-11-11 11:40:39 +08:00
    前两天上不了网,来汇报下

    现在已经完成bitbucket的ssh配置和管理了。
    因为本地开发使用的是win环境和TortoiseGit客户端,参考下面完成了配置
    http://guganeshan.com/blog/setting-up-git-and-tortoisegit-with-bitbucket-step-by-step.html



    下面是自动化部署的,等下午汇报

    @msg7086


    @mongodb 关于第一点还望指点下,我现在是把git目录和www目录放到一起了
    输入网站后面加/.git/config
    就可以看到配置

    msg7086
        8
    msg7086  
       2013-11-11 12:48:02 +08:00
    屏蔽.git访问,可以在webserver层做
    asing
        9
    asing  
    OP
       2013-11-11 17:41:57 +08:00
    @msg7086
    感谢回复,有些初级的问题还是想麻烦下
    我参照http://brandonsummers.name/blog/2012/02/10/using-bitbucket-for-automated-deployments/

    尝试用hooks来管理自动部署,但是还是遇到些问题,特来请教


    分支我还是想用2个分支来管理项目,一个master一个deploy
    master是开发主分支,功能开发完毕后提交到deploy进行自动化发布

    还有个问题是权限的问题

    一直在测试
    https://www.v2ex.com/t/56413

    测试一半,明天继续。
    msg7086
        10
    msg7086  
       2013-11-12 20:16:19 +08:00
    不好意思……你的问题在哪……

    56413的问题可以参考各大git repo的做法,建立git账户,push的时候经由git账户来读写文件。

    pull的话应该还是要以www-data的身份来做才行,要不然的话就需要sudo权限了。
    supersheep
        11
    supersheep  
       2013-11-15 11:15:33 +08:00
    @msg7086 再请教一下从bitbucket到production server的过程是什么样的?自己写webhook,还是用的第三方的发布服务?
    msg7086
        12
    msg7086  
       2013-11-15 17:16:43 +08:00
    @supersheep 我们还没做到production这步,所以我也不清楚流程怎么样比较好。

    不过我是觉得既然是production server了,还是手动pull更新比较好……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:21 · PVG 18:21 · LAX 02:21 · JFK 05:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.