git是一个非常不错的版本控制软件,如果需要一个可以远程push代码的地方,开源软件可以选择像github这样的网站,如果是自己的私有代码,也可用利用一台比如linux的服务器,几乎不用什么配置,只需要支持ssh就能往上面push代码。
但是如果是一个小型团队,可能就要涉及到一些权限的控制,还有考虑版本库建立还有查看的易用性。
之前我用过gitosis,这是个不错的git管理工具,有基本的权限控制,不过所有的操作都是需要登录到服务器后使用命令行进行,对于一个人的东西当然没什么问题,但是如果这个服务器服务于多人,那么其他人想建立一个仓库的时候就必需联系管理员或自己登录上去操作,这样对命令行不熟悉的人不太方便,如果可以像github那样通过web界面来操作的话那就很方便了。
于是我就基于django框架写了一个小小的应用,可以通过web界面来建立git仓库,并且有一些很简陋的权限设置。
Continue reading ‘一个git管理的小应用 (希望有人来一起开发..)’
如果想要在git push后自动通知团队中的其他成员,可以利用git的hook脚本,git源代码里 contrib/hooks/post-receive-email 就可以直接用来发送邮件通知。
如果觉得邮件还不够即时,可以试试利用gae发送通知到gtalk上,google提供了很方便的api,可以通过部署在gae上的程序发送xmpp协议的即时消息。
我无聊写了个这样的小程序,放在github上了,用的是Python版的GAE SDK。
使用方法:
下载后,先把gae目录中的程序部署到gae上,然后可以访问 domain/sendim/invite 向所需通知的用户发一个邀请,然后可以访问 domain/sendim/demo 测试下消息是否能够正常发送。
接着将scripts目录中的post-receive-im链接到git服务器里指定仓库的hooks目录中,名为post-receive,post-receive-im这个是我直接在post-receive-email里改的 – -
最后修改git服务器仓库目录里的config文件加入下面的内容
[hooks]
# 要通知到的用户的gmail,如果有多个用空格分开
jids = xxx1@gmail.com xxx2@gmail.com
# 就是刚才部署的那个gae的地址
imurl = http://xxxx.appspot.com/sendim
这样弄完,push后应该就会收到消息了, svn hg等应该都可以用类似的方法实现一个通知,利用gae真的是可以玩出很多花样阿,哈哈。
目前只弄了一点点,如果谁有兴趣,欢迎加入一起改进阿
。
首先下载安装msysgit,安装过程一般使用默认选项即可。不过如果团队中可能有使用Linux unix等非windows系统的话,最好选择 Use unix style line endings

msysgit装完就能用命令行的方式玩git了,如果需要一个类似乌龟svn的GUI工具,可以装下 tortoisegit。
现在基本就能在本地玩git了。
如果是在一个团队中,要参与合作开发,一般是需要生成ssh key,然后把公钥发给git服务器管理员,让管理员给你设置权限。这样才能push或pull。
打开 msysgit 的cygwin窗口 ,可以双击桌面上的图标,也可以在任何文件夹上右键 选 Git Bash Here
输入 ssh-keygen -t rsa -C "xxx@xxx.com" 并回车(-C 后面的引号里就输入邮箱地址好了…),如果你不清楚回车后提示你输入的是啥,就一直回车直到完成好了。
然后到 系统盘你的用户目录里的.ssh目录下,比如 C:\Documents and Settings\Administrator\.ssh ,把里面的 id_rsa.pub 文件发给管理员,如果使用类似github的git服务提供网站,就把那个文件里的内容添加到账户的SSH Public Keys里。
最后在乌龟git里设置2样东西

首先进入Network选项,把ssh client的程序设置为msysgit安装目录里的bin/ssh.exe ,如下图

然后进入Config,输入你的名字和Email,再勾上下面的Save as globa,就行了,以后你做了提交,在git log的Author就是你这里设置的名字和Email。

完喽,这样在Win下就基本配置完了一个git客户端。