git网站发布管理

2013-11-08 16:50:45 +08:00
 asing
各位好:

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

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

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

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

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

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

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

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

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

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

其实可以用rsync直接同步两边的代码,但是git branch的功能就不能体现出来了
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
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
2013-11-09 17:52:53 +08:00
@msg7086 有几个疑问,这里的staging和release分别是指什么阶段?放到github上去是不是就要注意重要配置不能提交这种问题了?
msg7086
2013-11-09 20:43:43 +08:00
@supersheep 配置肯定不能直接提交啊,要么做sample让用户自己改,要么用环境变量+默认值

staging server的话是指集成测试环境,release branch是发布分支,是直接上生产环境用的版本。
asing
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
2013-11-11 12:48:02 +08:00
屏蔽.git访问,可以在webserver层做
asing
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
2013-11-12 20:16:19 +08:00
不好意思……你的问题在哪……

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

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

不过我是觉得既然是production server了,还是手动pull更新比较好……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/88546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX