请教各位平时是怎么协作开发的
发布于 2 年前 作者 lzszone 2949 次浏览 来自 分享

之前一个人干,现在多了一个人 ,想两个人共用一套代码和服务器,需要代码同步,各位用的是什么呢

来自酷炫的 CNodeMD

16 回复

想问一下你几年开发经验了

From Noder

用码云,coding 之类的开私有仓库,或者自己公司搭 git 服务。团队切分好模块,每天定时进行 pull,push (代码同步)。

gitlab

来自酷炫的 CNodeMD

你一个人开发的时候不用版本控制的吗。。

源代码管理git ,svn,cvn,tfs,vss都可以的。

@TimLiu1 @yinxin630 @Lizhooh @zswnew @nullcc 就是用了git,目前是用的gitolite,然后有个问题是他生成的git文件是空的,我希望不但代码能够同步,而且代码要运行在代码同步服务器上,再自动重启,我跟新同事就可以push上去就能看到变化了,

git 的push-receive这个钩子我服务器上老是不运行是为啥?

@lzszone

2 个人还折腾什么。

服务器上直接

mkdir /home/git/project
cd project
git init --bare

就可以创建一个“裸库”了,然后直接 ssh 就可以连上去:

git clone xx@xxx:/home/git/project

ssh 不用密码用公钥的办法自己网上找下吧。


你说的“自动重启”的功能,在服务端,hooks 中,作一个 post-receive 文件,里面的内容你想实现什么都可以,什么部署,重启,随便。(当前提交的一些信息是从“标准输入”传递的)

@yszou 我也不想呀。。。但是都了解到这个份上了。。。稍微弄个高级点的也不过分呀。。 就是post-receive有问题, 我是这样做的,服务器克隆服务器上的git公共库作代码实体。。。然后在post-receive里面

#!/bin/bash
cd /path_to_project
git pull

就这么两句话,就是不工作。。。

@lzszone

  1. 你那个 path_to_project 是你事先 git clone 下来的代码库?
  2. 你这个 post-receive 有可执行权限?

你把你的 post-receive 所在的目录,及上级目录的 tree 发出来看看吧。

既然都这样了,为什么不装个gogs

有一种东西叫做持续集成,或者你们需要一个 DevOps 工程师。试试 docker 的 Dcloud,个人应该是免费的,应该可以完成这个功能,但是我也没深究过。

@yszou 谢谢,就是权限导致的…运行钩子的时候没有用户文件夹的权限, 然后代码要改

#!/bin/bash
cd /path_to_project
unset GIT_DIR
git pull

持续集成 jenkins

团队任务管理用taiga, 持续集成用jenkins,代码托管用gitlab。

公司的gitlab上有一套工具(shell脚本),可以在jenkins上自动化部署。

工作流程是 首先代码commit后,发起merge request, assign给对方,请求对方review,通过后merge代码到master分支上,jenkins自动扫描master分支是否改变,自动化构建,拉取代码执行测试,测试通过后打包到npm上(这几部都是通过shell脚本自动完成的),最终deploy到目标机器上。

回到顶部