同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器。
git通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child指向B,而master依然指向A。无论我们在child分支进行了任何开发,只要回到master分支,就能恢复到更新A的数据状态了。
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git是一个开源的分布式版本控制软件。在英式英语中,Git指一个愚笨或者不开心的人,恐怕与Git发明人——Linux教父LinusTorvalds当时的自嘲心理不无关系吧。2002年之前,Linux内核维护工作的绝大部分时间都浪费在提交补丁与保存归档等繁琐事务上。启用版本控制工具BitKeeper管理Linux内核成了当务之急。不过,BitKeeper毕竟是一款商业软件,在经历了3年免费使用之后,Linux社区不得不寻求它的替代品,以便继续托管Linux内核源代码。2005年,迫于无奈,LinusTorvalds自行开发了一套开源版本控制工具,并命名为Git。
•下载Ecliplse Git plugin并安装 •将自己本机证书公钥上传到github上自己注册的账号下,以便建立可靠的SSH(HTTPS)通信 •在github上自己注册的账号下Fork某个项目,以后针对此项目进行提交和代码修改工作 •Eclipse里Clone自己Fork的项目,做代码更新并提交 •在github网页上到自己的Fork项目下生成一个Pull Request请求,请求作者合并自己的代码 •Eclipse中同步(pull)官方项目代码并Merge变化到自己的项目中
使用pull从远程更新代码时,会获取到远程指定分支的更新并合并到本地指定的分支,一般情况下不需要指定,默认把本地当前分支对应的远程分支的更新获取到并跟本地的当前分支合并。
在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码 因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。 Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统 集中式版本控制器系统,版本库是集中存放在中央服务器的,而干活的时候用的都是自己的电脑,,每次都需要从中央服务器上获取数据,然后修改,最后再发到中央服务器上。 集中式版本控制系统最大的毛病就是必须互联网才能工作, 如果在局域网内还好,宽带勾搭,速度够快,可如果在互联网上,遇到网速较慢的话。可能需要较长的时间。
Git是目前世界上最先进的分布式版本控制管理系统。
第一步:安装插件:git:http://download.eclipse.org/egit/updates-1.3第二步:将密匙文件放入,如图所示:如图加入密匙文件:yiping.wang注意,如果没有这个.ssh文件的话,自己创建,创建如图:第三步:使用gradle的步骤:先使用gitcheckout项目Next下去哈检出项目如图:第四步安装:Gradle安装地址为下载地址:http://services.gradle.org/distributions/gradle-1.5-all.zip安装:解压到自定义目录(例如:C:\gradle-1.5)设置环境变量注意,这里的环境变量都配置到用户名里,不要配置到系统里,否则挂的可能性很大GRADLE_HOME=C:\gradle-1.5Path+=%GRADLE_HOME%\bin打开命令行输入:gradle,显示以下类似信息即表示安装成功命令:找到项目的地址,在docs命令下的改项目名下,编译编译命令:gradlecleaneclipseeclipse-Pprofile=test--------------------有针对性的编译编译命令:gradlecleaneclipseeclipse-----------------------全部编译自动编译:运行这个也可以的哈(以上选其一就ok了)后面的可以暂时不考虑哈打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默认为:build.gradle)-c指定settings文件(默认为:settings.gradle)-x排除指定任务(例如:-xtest)更多常用命令请输入gradle-h/help查看Import项目ok有时候导入项目的时候会有一些bug出现,这个时候需要查看一下这个里面是否有依赖关系这个是依赖的项目名导入依赖的项目名就ok了打包命令:gradlecleanwar-Pprofile=product一些常用命令:-b指定build文件(默认为:build.gradle)-c指定settings文件(默认为:settings.gradle)-x排除指定任务(例如:-xtest)更多常用命令请输入gradle-h/help查看
代码提交规范:文件提交时要求必须提交注释,注明相关修改信息,例如bug号、任务描述等。代码变动及时提交,避免丢失本地修改后无法恢复。在提交之前要编译代码并修正错误。要保证新增加的文件同时被提交,否则只在你本地能正常工作,导致其它人不能编译通过。提交之前要测试所改变的应用,测试改变后的效果是否达到预期的目的。多次检查提交的内容。提交之前应先做SVN更新或与资源库同步,注意到SVN关于冲突、错误的信息。资源库同步会告诉你将要提交的内容与资源库内容之间的差别,确认它们是不是你真正想要提交的。
在Windows环境中使用版本管理工具Git。Git是一个分布式的版本控制系统,最初由LinusTorvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,目前很多知名项目都使用了Git。 一、为什么选择Git对于流行的软件版本开源管理软件,元老级的CVS、后来新秀的SVN,GIT的优势又在哪里呢?1.傻瓜都会的初始化,gitinit,gitcommit-a,就完了。2.绝大部分操作在本地完成,只有最终完成的版本才需要向代码管理服务器提交。3.每次提交都会对所有代码创建一个全球唯一的commitid。4.branch管理容易多了,无论是建立新的,还是切换都一条命令完成。5.branch之间merge时,不仅代码会merge在一起,checkin历史也会保留。其他特点:1、更方便的Merge2、更方便的管理3、更健壮的系统分布式系统一般情况下总是比单服务端的系统要健壮,因为但服务端一旦服务器挂掉了整个系统就不能运行了。
教程:SVN的认识与使用1.SVN是什么。2.SVN的结构。3.SVN的作用。4.SVN的常用命令。5.更进一步。SVN的结构:服务器SVN_Server客户端TortoiseSVNSVN的作用:为什么要用SVN1.个人使用:记录代码的进化历程2.团队使用:一份代码,多人同时编写记录代码版本,追溯修改监视每个人的工作SVN的常用命令
一、Git代码状态转换图1二、git的个人本地使用及操作1三、git的团队开发及操作4四、git的分支管理5五、git忽略机制5Git代码状态转换图其中:未被Git跟踪的状态为unstage状态已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态untrackfiles是指尚未被git所管理的文件;changedbutnotupdated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被git管理的状态,我们这里称非stage状态。changestobecommited是指进入stage状态的文件,stage是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交
其实这是一个本说叫做ProGit的一部分,我觉得讲得很好,正好有人截取了一部分出来,我转载了。书的地址在:。http://progit.org/book/很好的一本书,值得慢慢看,慢慢品位。项目的管理既然是相互协作,在贡献代码的同时,也免不了要维护管理自己的项目。像是怎么处理别人用format-patch生成的补丁,或是集成远端仓库上某个分支上的变化等等。但无论是管理代码仓库,还是帮忙审核收到的补丁,都需要同贡献者约定某种长期可持续的工作方式。使用特性分支进行工作如果想要集成新的代码进来,最好局限在特性分支上做。临时的特性分支可以让你随意尝试,进退自如。
SVN使用手册SVN简介SVN用于版本管控。您可以把SVN当成您的备份服务器,并且它可以帮您记住每次上传这个服务器的档案内容,并自动地赋予每次的变更一个版本。VisualSVN服务器端在服务器端需安装VisualSVN软件,界面如下:Repositories为服务器端程序版本库,在VisualSVNServericon中,Repositories即为客户端上传档案的地方,可以点击右键,新建Repository,对不同工程建立不同版本库,即上传档案的地方:在服务器端,可设置登录用户名及密码,如下:在左边树形分支“User”点击右键,点击“新建”中的“User”.在“Username”中输入用户名,Password及Confirmpasswork中添加密码;
迁出配置库内容 1、在本地硬盘上建立一个文件夹“SVN”,并在文件夹“SVN”中建立一个子文件夹(子文件夹为空文件夹),子文件夹的名称可以根据本公司配置库路径下的对应文件夹名称进行定义。例如在SVN中建立一个test子文件夹。