categories:
svn author:
sch
来源:互联网
Git是一个免费的、开源的版本控制软件,和SVN类似,具体的区别大家应该都是知道的。Git的下载方式:一个是在官网上获取,另一个可以点击这里下载。
Git在win7下的安装过程如下:









安装完后配置下Git的环境变量,如下图:

完成以上步骤,Git已经基本安装好了,桌面上会生成一个Git Bash的快捷方式,如图所示:

运行git bash,开始配置git:

1、配置email,命令如下:
$git config –global user.name "your name"
$git config –global user.email "your@email.address"
其中"your name"换成你的名字,"your@email.address"换成你的邮箱地址。
2、生成公钥,用于身份认证:
ssh-keygen.exe -C "your@email.address" -t rsa
这样就可以在你的用户下取得需要的公钥匙,公钥位于你的电脑中“C:\Users\hy\.ssh”的“id_rsa.pub”文件下:

使用编辑器打开,里面的就是公钥的内容:
ssh-rsa … 阅读全文
categories:
svn author:
sch
来源:互联网
Part 1
第一章 基本原理
git是一个版本控制系统。官方的解释是:版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个项目,假设这个项目是使用c语言写的(当然用任何语言都可以的)。那么大家怎么合作呢?用信件?效率太低。用邮件,不好实现多人沟通。用google
group吧,可开发阶段中的源代码没法科学管理。用自建的网站吧,需要人力物力财力来支撑阿。
这个时候版本控制系统就派上用场了。它可以让一个团队里的不同的人在不同地点、不同时间开发和改进同一个项目,并且在大部分的时间里,版本控制系统会聪明的帮你把不同的人在不同地点不同时间修改的代码融合到项目中去。(当然在一些特殊的情况,还是需要人去决定到底哪些代码需要加入到项目中,这个在后面讨论不迟,先让大家对版本控制有一个好印象,呵呵)
知道了版本控制系统的优点之后,下面就要具体实践和体验了。建议你选用的版本控制系统包括:
rcs,cvs,svn,git,Mercurial,Bazzar等等。
当然git,Mercurial和Bazzar都是属于分布式版本控制系统。
下面是一些网友对于这些版本控制系统评论的只言片语:
1) svk配合svn可以实现分布式的版本控制。
2) 我是从SVN转到Git下的。我想Git的优势是速度飞快,谁用谁知道!
3) git的确是最快的,bzr慢的要死
4) SVN 在 windows 下有 TortoiseSVN
5) git 有 Windows 版本,在 google code 上的项目。http://code.google.com/p/msysgit/
6) 大家可以试试国内提供的git服务。http://www.githost.cn
那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了 Git 的思想和基本的工作原理,用起来就会知其所以然,游刃有余。在开始学习 … 阅读全文
categories:
svn author:
sch
来源:互联网
简单来说Git是一个免费的、开源的版本控制软件,从功能上讲,跟我们比较熟悉的Subversion(SVN)这类版本控制软件没什么两样。由于工作的需求,需要在WinXP下安装git配合团队完成相应的工作,以前一直在别的系统下使用,今天经Drupal花园的龙马指点终于安装成功了,特意贴出来与有需要的童鞋一起分享。
获取Git软件:
大家可以通过两种方式获取Git的软件,一个是在官网上获取,另一个可以点击这里下载。只是有一点需要说明就是需要下载支持WinXp系统的版本。
Git在WinXP安装过程
在WinXP下安装Git详细步骤参考如下安装示意图:
![wps_clip_image13158_thumb[1] wps_clip_image13158_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image13158_thumb1.jpg)
![wps_clip_image638_thumb[1] wps_clip_image638_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image638_thumb1.jpg)
![wps_clip_image32409_thumb[1] wps_clip_image32409_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image32409_thumb1.jpg)
![wps_clip_image17364_thumb[1] wps_clip_image17364_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image17364_thumb1.jpg)
![wps_clip_image9841_thumb[1] wps_clip_image9841_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image9841_thumb1.jpg)
![wps_clip_image2781_thumb[1] wps_clip_image2781_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image2781_thumb1.jpg)
![wps_clip_image3905_thumb[1] wps_clip_image3905_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image3905_thumb1.jpg)
![wps_clip_image10701_thumb[1] wps_clip_image10701_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image10701_thumb1.jpg)
![wps_clip_image27886_thumb[1] wps_clip_image27886_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image27886_thumb1.jpg)
点击上图的“Finish”后Git的安装就完成了,安装完成后需要在进行一下环境变量的设置,改变环境变量的具体步骤可以参考下图:
![wps_clip_image3443_thumb[1] wps_clip_image3443_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image3443_thumb1.jpg)
![wps_clip_image18332_thumb[1] wps_clip_image18332_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image18332_thumb1.jpg)
![wps_clip_image31141_thumb[1] wps_clip_image31141_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image31141_thumb1.jpg)
![wps_clip_image26347_thumb[1] wps_clip_image26347_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image26347_thumb1.jpg)
![wps_clip_image26146_thumb[1] wps_clip_image26146_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image26146_thumb1.jpg)
生成ssh公钥
双击桌面上的git运行程序:
![wps_clip_image24534_thumb[1] wps_clip_image24534_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image24534_thumb1.jpg)
启动git的运行程序:
![wps_clip_image26468_thumb[1] wps_clip_image26468_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image26468_thumb1.jpg)
在程序中依次输入:
1、配置email,命令如下:
$git config –global user.name “your name”
$git config –global user.email “your@email.address”
其中”your name”换成你的名字,”your@email.address”换成你的邮箱地址。
2、生成公钥,用于身份认证:
ssh-keygen.exe -C “your@email.address” -t rsa
这样就可以在你的用户下取得需要的公钥匙,公钥位于你的电脑中“C:\Documents and Settings\Airen\.ssh”的“id_rsa.pub”文件下:
![wps_clip_image8872_thumb[1] wps_clip_image8872_thumb[1]](http://www.iigrowing.cn/wp-content/uploads/WindowsGit_EF26/wps_clip_image8872_thumb1.jpg)
你使用文本编辑器打开“id_rsa.pub”就可以看到公钥的内容:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs1c3zL3IbjhMbSCwooZ7WHlkga7xq+5inQUCTqmZ7xqBclvEwofDd4BYts99X+xfNXgGSlil85wrOfXX9ZH27ZmPR3Z8KWp3pekFOvk7iLmt0b9lZqhgpUll76Q7D2KED8se9gV4FNxg05ZK6AUZm70cBj9sZqjV//weE7ufkibcqd3ngHsTKB+0Js8NcMwldHmxIxZEwufxgT/D4EGQCA6ijjuj9ILIydzzLwWzKoH1wuGDU5LAE1qptIpAt50uWxPNlsBPoqZnbJjHg+As9If6tRkG4YzkwzSBTP725bJDcWkArhWRRkJ2cwUgcJYRyCY+8jI2oxDawYjWQ+w9HQ== airenliao@gmail.com
此时只要把你的公钥放进你项目的服务中就可以进行git的相关操作。
关于git的命令更多操作,可以到官网查阅,或点击这里查看更多的命令操作。… 阅读全文
categories:
svn author:
sch
来源:互联网
1. TortoiseSVN 简介
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会
花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工
作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要
管理潜在的混乱。
2. 什么是 TortoiseSVN
TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将Subversion 和版本控制系统看作一种“时间机器”。
某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 -
…
阅读全文
categories:
svn author:
sch
categories:
svn author:
sch
来源:互联网
一、 分支与合并的概念:
分支:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以混合回主分支里(主干线)。
合并:分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。
二、 SVN分支的意义:
简单说,分支就是用于区分开发版本与当前发布版本的。
1、 主干负责新功能的开发
2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发)
3.、分支上修改的bug,经常性merge到主干上,尽量及时merge(避免大面积红色区域)。
4.、只能分支往主干靠拢(merge),不能反向!
5.、直到下个新版本发布,该分支停止修改
三、 如何创建分支与合并分支:
1、首先要在你的版本库存里创建主干目录,通过版本库浏览器,如图1所示:
(图 1)
2、输入版本库URL地址,如图2所示:
(图 2)
3、进入版本库浏览器主目录,如图3所示:
(图 3)
4、创建主干目录,如图4所示:
(图4)
5、主干目录(trunck),如图5所示:
(图 5)
6、把你要加入版本控制的文件加入主干,如图6-8所示:
(图 6)
(图 7)
(图 8)
7、从主干里检出文件到你的本地工作副本上,如图9-10所示: … 阅读全文
categories:
svn tags:
原创, 培训, 学习 author:
sch
原创文档,转载请将原文url地址标明
SVN是程序员必须熟悉的一个工具,真正理解这个工具的工作原理还是需要些时间的,但是我们不妨先去多实践,多实验,多去看文档,可以自己在windows 中配置一个SVN的server,然后将自己学习中各种项目都放入自己的SVN server中,然后不断练习,慢慢的就会有很大提高。
SVN是个标准的c/s结构软件系统,我们必须同时具备SVN server以及SVN client然后整个系统才能正常的工作。我们至少在这样的一个系统上才能真正学习、工作等。
SVN客户端程序一般比较流行的是TortoiseSVN,这个是图形化的SVN客户端软件,操作简单,易用,同资源管理器集成等。他的安装比较简单,默认next方式安装就可以。
目前有了client还欠缺一个server端程序,若是两个都具备了我们就可以进行研究了。
一般SVN server安装还是略微麻烦些的。其实出于学习目的我们完全没有必要专门安装一套SVN server系统。在正常开发环境中,一定会有专人负责SVN的维护等,主要维护的server系统。因此我们仅仅需要一个最简单的、仅供自己学习的SVN系统,不需要太多功能。
这个系统TortoiseSVN已经为我们提供了,我们仅仅需要简单设置一下就可以工作了。本文将较为详细的介绍一下这个操作过程,供大家参考。
一. 创建SVN仓库
![wps_clip_image-19553[3][1] wps_clip_image-19553[3][1]](http://www.iigrowing.cn/wp-content/uploads/SVN_E24/wps_clip_image1955331.jpg)
如上图
1. 在硬盘中,创建一个空的目录,本例中创建z:\repos目录作为仓库目录
2. 在目录中 任意空白处点击 鼠标右键,选取图中菜单项
3. 最后选择“Create repository here”项目
这样客户端就会在这里创建一个 file:///类型的服务器仓库。
二.svn仓库地址获取与维护
![wps_clip_image-28998[3][1] wps_clip_image-28998[3][1]](http://www.iigrowing.cn/wp-content/uploads/SVN_E24/wps_clip_image2899831.jpg)
如上图,还是在刚才创的目录中,已经包含了仓库必备文件。千万不要手工修改这些文件,这些文件必须由TortoiseSVN软件进行维护,否则可能破坏仓库造成损失。
如何获取仓库地址,这样才能进行后续SVN操作
1. 在仓库中任意空白处(位置2的地方),选择鼠标右键
2. 依次点选图中菜单,最后选择repo-browser
最后将获得下图界面
![wps_clip_image-22537[3][1] wps_clip_image-22537[3][1]](http://www.iigrowing.cn/wp-content/uploads/SVN_E24/wps_clip_image2253731.jpg)
如上图,其中
1. 图中 位置1处是 … 阅读全文
categories:
svn author:
sch
来源:互联网
svn是程序员必须熟悉的一个工具,真正理解这个工具的工作原理还是需要些时间的,但是我们不妨先去多实践,多实验多去看文档,可以自己在windows中配置一个svn的server,然后将自己学习中的各种项目都放入自己的svn server中,然后不断练习慢慢的就会有很大提高
![image[2][1] image[2][1]](http://www.iigrowing.cn/wp-content/uploads/TortoisesSVN_10F41/image21.jpg)
如上图用资源管理器中在硬盘的适当位置选择右键,依次选择菜单想,最后选择2位置处的菜单就可以创建一个本地的svn服务器。
然后就可以进行各种练习了,这个是自己本地的svn仓库。可以自由练习了。
1. TortoiseSVN 简介
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会
花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工
作的团队 – 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要
管理潜在的混乱。
2. 什么是 TortoiseSVN
TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将Subversion 和版本控制系统看作一种“时间机器”。
某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 – 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。
3. 名词解释
3.1 检出工作副本
你的版本库就像是一台时间机器,它记录了所有提交的修改,允许你检查文件或目录以及相关元数据的历史。通过一个Subversion 命令你可以根据时间或修订号取出一个过去的版本(或者恢复现在的工作拷贝),然而,有时候我们只是想看看历史而不想回到历史
3.2 提交修改
可以理解为上传修改文件的记录,就是把工作副本里面修改过的文件的记录上传到版本库里面。
3.3 … 阅读全文
categories:
svn tags:
svn author:
sch
[本地工作区] :work copy ,本地工作副本;
[主项目]:引用共用模块的新项目(工程)
最新版本(HEAD revision):版本库里文件或目录的最新版本
SA :SVN服务器的管理员
PRA :单个项目库的管理员,或者是项目负责人
User :普通工作人员
WC :work copy ,本地工作副本
一、 模块化开发中svn的使用
主要介绍模块化开发中公用模块/组件的版本控制,介绍两种方法。其中,公用模块一般指那些已经完成的、不可修改的、无法编译成dll的、功能较为完整的代码群。
1.1手工维护公用模块/组件的[本地工作区]
将公用模块(的所需版本)直接 取出ckeckout 到本地,公用模块的[本地工作区] 可以作为被引用的[主项目] [本地工作区] 的子目录也可以放在其他独立目录中。[主项目]的提交commit 对公用模块的[本地工作区] 不会发生任何影响,而且公用模块的[本地工作区] 需要项目团队中的每个成员与[主项目] [本地工作区] 相对独立的维护(取出ckeckout ),可能会出现不同项目成员之间的公用模块[本地工作区] 不一致的错误。
1.2 Svn自动维护公用模块/组件的[本地工作区]
需要使用svn:externals 属性,具体操作步骤如下:察看[主项目] [本地工作区] 的目录属性… 阅读全文