使用GIT管理自己的源代码图文教程(写给自己使用总结)
第一步:下载msysgit(git for windows)
http://code.google.com/p/msysgit/downloads/list
下载tortoiseGIT.(类似tortoiseSVN,不过git比svn功能多)
http://code.google.com/p/tortoisegit/downloads/list
然后安装。一路next吧,不要问为什么。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_589827PMME56.jpg
git工作流程图 (原文件名:git工作流程图.jpg)
解释:
例如:一个开源项目有项目负责1人A表示,4个分管模块组长g1,g2,g3,g4表示,20个程序员p1,p2,p3...。
单某个程序员p1增加程序功能,而这个代码对应的组长是g1,经过g1功能可以进入项目并请求项目负责人A进入代码。
则流程如下。
1、p1克隆项目代码。git clone
2、p1修改代码,测试,确认ok,然后commit到自己的本地仓库。git commit
3、给分模块组长g1发email,请求添加功能。
4、g1确认这个代码不错,可以进入代码。将代码加入自己的子项目或给p1权限进行push操作到自己的电脑上。 git push
5、g1发email通知项目负责人添加功能。
6、g1将自己的子模块最新代码push到自己的分支 git push
7、项目负责人A进行合并分支操作,p1添加的代码进入项目。git merge
而对于个人用来维护自己的代码则类似:
例如:
建立两个目录
在自己d盘建立一个目录作为自己的代码仓库,比如说是d:\git,然后执行git init操作
在自己d盘建立一个目录作为自己的工作目录,比如说是d:\workspace,然后执行 git clone -l d:/git
然后进入workspace的git目录,把自己的项目存在这里。
其中有 git add,git commit操作。
觉得自己的代码可以了,git push origin master,这个时候你的项目代码进入仓库。
建议你的git仓库建立别的分支,然后和master分支合并
上传视频教程
http://v.youku.com/v_show/id_XMjE0NzIyMTUy.html
http://v.youku.com/v_show/id_XMjE0NzQzNDY4.html 没用过git,据说git用在windows上不是很方便
hg倒是简单易用
不过想支持集中仓库和权限管理,比svn差了太多 回复【1楼】sssttt
没用过git,据说git用在windows上不是很方便
hg倒是简单易用
不过想支持集中仓库和权限管理,比svn差了太多
-----------------------------------------------------------------------
1、你所说的git再windows中不方便,目前不能成立,现在tortoisegit已经很好用了。svn的好用是建立在tortoisesvn的基础上的。
2、git有集中仓库的概念。就是push操作,而不是svn里的commit操作。git里的commit操作是更新自己的本地仓库。进行push操作后这些本地的版本演化信息也会保留到服务器中。
3、权限管理。这是git设计的时候没有设计自己权限管理也没有必要,git的权限管理依赖于操作系统的权限管理 我在用hg,想弄个支持外网的多项目代码库,难啊
svn做这个事情倒是很简单
我在考虑是否hg+svn 记号,以后用得上 没用过git,据说git用在windows上不是很方便
---------------------------------------------
git在win平台上的tortoiseGIT小乌龟早已经很稳定了,操作很方便,如果搞仓库和缺陷管理的话,trac是支持git的。
权限没研究过,因为我还是svn服务器+git本地的方式在用的。 GIT 的windows服务器是什么配置的呢?我以前尝试配置一个GIT的windows服务器,但是没有成功。不知LZ可否给个介绍或者说明呢?十分感谢! 回复【6楼】oldtom
-----------------------------------------------------------------------
oldtom
git服务器的概念跟svn或cvs的服务器概念不一样。
git服务器是依赖他的协议的,可以是http,ftp,shttp,sftp,ssh,或者紧紧是个u盘。
我想你心目中的git服务器是支持git://协议格式或git@git.com:xx/xx的ssh格式。
这两种格式,由于git是linux原生开发的,所以用linux较好。
windows配置的话,主要是cygwin的配置和ssh服务器的配置。这是windows刻意去模仿linux.
如果一定要用windows的,还是应该取windows长处使用方便特点。主要git设计的时候没有服务器的概念。
告诉你个简单的。
在服务器,建立一个目录,配置好权限,然后共享。
然后所有人程序员将服务器共享映射成本地盘,让他们push到这个盘上去。
git的专为开源松散结构开发模式而开发的。项目管理人决定代码是否使用。用于商业软件的开发svn比较合适。 回复【7楼】qmycy
回复【6楼】oldtom
-----------------------------------------------------------------------
oldtom
git服务器的概念跟svn或cvs的服务器概念不一样。
git服务器是依赖他的协议的,可以是http,ftp,shttp,sftp,ssh,或者紧紧是个u盘。
我想你心目中的git服务器是支持git://协议格式或git@git.com:xx/xx的ssh格式。
这两种格式,由于git是linux原生开发的,所以用linux较好。
windows配置的话,主要是cygwin的配置和ssh服务器的配置。这是windows刻意去模仿linux.
如果一定要用windows的,还是应该取windows长处使用方便特点。主要git设计的时候没有服务器的概念。
告诉你个简单的。
在服务器,建立一个目录,配置好权限,然......
-----------------------------------------------------------------------
嗯,分布式的确实很好,这点我没有异议
可作为管理者,需要集中的代码服务器,您可以理解吧?
在局域网共享,当然可以
可如何在外网操作呢?
还有,开户,建项目,将用户与项目挂钩等等工作,貌似现在没有开源的东西
实际上,我需要个类似github,Bitbucket这种支持私有项目的东西
实在找不到,可能只好自己开发
我可以利用反向代理给hg简单的web服务器加上用户名密码认证,针对项目级的很粗糙的权限管理
hg目前没有人做类似东西
git在这方面做的如何呢? mark 回复【8楼】sssttt
-----------------------------------------------------------------------
问题1:可作为管理者,需要集中的代码服务器,您可以理解吧?
回答:分布式管理的含义,从拓扑的结构来说每个程序员的地位是平等的,但分布式管理,最终还是会指定某人维持一个主干。而维持这个主干的人通常会指定一台机器为代码服务器。从这个角度来说分布式管理,最终还是需要一个集中的服务器。这点你可以理解吗。
问题2:在局域网共享,当然可以 可如何在外网操作呢?
目前git支持:nfs,ssh,git,(s)http
nfs就是我说的网络共享,可读,可写,权限依赖操作系统。
ssh就是加密,可读可写,权限非常可靠。
git通常用于为大众提供大量读取服务的协议,权限管理严重不足。
http傻瓜协议。
以上参考http://progit.org/book/zh/ch4-1.html
问题3:还有,开户,建项目,将用户与项目挂钩等等工作
对于一个公司来说,就是一个局域网,指定一台主机做服务器,其他的人连接这台主机进行提交。
你说的开户,建立项目,这是项目经理或高级程序员建立框架的过程。
你说的用户与项目,就是某几台机子的人负责某项目,这些人可读可写。另外一些机子则不能访问,他们能访问别的项目。这同样是网络管理员该干的事情。当然可以指定某人兼职网络管理员。 如果作为在公司里面项目的应用,我还是比较认可 WIN+GIT+SSH的方式。只不过配置起来确实有点麻烦。目前好像很少有人配置成功的。 MARKED TODAY 在配置ing git这么强大的工具,貌似这里用人不多
页:
[1]