版本控制系统

Git -- 搭建git服务器

这一生的挚爱 提交于 2020-03-15 11:24:11
在 远程仓库 一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。 GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的 apt 命令就可以完成安装。 假设你已经有 sudo 权限的用户账号,下面,正式开始安装。 第一步 ,安装 git : $ sudo apt-get install git 第二步 ,创建一个 git 用户,用来运行 git 服务: $ sudo adduser git 第三步 ,创建证书登录: 收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件,把所有公钥导入到 /home/git/.ssh/authorized_keys 文件里,一行一个。 第四步 ,初始化Git仓库: 先选定一个目录作为Git仓库,假定是 /srv/sample.git ,在 /srv 目录下输入命令: $ sudo git init --bare sample.git Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享

SVN服务器详细权限控制

南笙酒味 提交于 2020-03-14 18:09:25
版权声明:本文为博主原创文章,未经博主允许不得转载。 下面是我配置SVN服务器的过程,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的地方,请指教! 一 环境   操作系统:windows2003 server   Apache:httpd-2.2.22-win32-x86-no_ssl.msi subversion: Setup-Subversion-1.7.8.msi   TortoiseSVN: TortoiseSVN-1.7.11.23600-win32-svn-1.7.8.msi 二 安装步骤 1.安装Apache 如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有域名,你可以直接输入IP地址,邮箱可以随便写一个)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group"Apache2"conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 8888。然后重新运行这个安装程序,这次应该不会再有问题了。 如何 测试Apache是否安装成功?

CVS版本控制-冲突解决方法

﹥>﹥吖頭↗ 提交于 2020-03-13 19:50:16
一直使用MyEclipse进行项目开发,利用CVS进行版本控制,经常会遇到冲突,一直不太了解产生原因及解决方法,经过网上一番查找资料,终于弄懂了,mark一下! 首先是冲突产生的原因,说来很简单:A、B同时下载服务器上同一文件,A修改完后同步到服务器,此时B也完成修改后,要将文件同步到服务器上,此时服务器和本地文件都发生改变,所以就会产生冲突。 解决办法就是人工手动检查错误,将服务器上的改动添加到本地,再将本地的改动同步到服务器,即可完成版本更新。其中要用到一个功能:mark as merged。作用就是忽略冲突,将本地文件直接覆盖掉服务器上的文件。 此处粘上一些我查到的有用的文章,以供查阅! ZZ1:http://topic.csdn.net/u/20120616/21/a672a836-ecac-4272-a69b-3b2dfce3829d.html 用了mark as merged后,再commit还是把别人的东西覆盖掉了。 最后,做了实验发现如下问题。 1.有一个test文档。其中,内容是 aaa 2.A加上一行: aaa bbb 3.同时,B也加了一行: aaa ccc 4.B commit 5.A 同步test文件,出现红色的双箭头,说明本地和服务器都有更新。 6.A 采用 mark as merged命令。之后,test文件变成灰色的向右箭头

Git and Github

橙三吉。 提交于 2020-03-13 18:49:48
Git 和 GIthub 一 GIT 是什么? Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper ,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git 。例如 最近就有很多 Freedesktop 的项目也迁移到了 Git 上。 二 GITHUB 是什么? Github 是一个代码托管平台和开发者社区,开发者可以在 Github 上创建自己的开源项目并与其他开发者协作编码。创业公司可以用它来托管软件项目,开源项目可以免费托管,私有项目需付费。 GitHub 是一个分布式的版本控制系统,最初由 Linus Torvalds 编写,用作 Linux 内核代码的管理。在推出后,

Git分支管理——创建、合并、删除分支

让人想犯罪 __ 提交于 2020-03-13 00:43:10
几乎所有的版本控制都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 Git的分支模型成称为它的“必杀技特性”,也正因为这一特性,使得Git从众多版本控制系统中脱颖而出。Git处理分支的方式是难以置信的轻量,创建新的分支这一操作是秒级完成的,并且在不同分支之间的切换操作也是一样便捷。 Git的分支,其实本质上仅仅是指向提交对象的可变指针。Git的默认分支是master。在多次提交操作之后,其实我们已经有一个指向最后那个提交对象的master分支。他会在每次的提交操作中自动向前移动。 实际工作中我们可能会遇到一个下面这个情况: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上分支,然后合并这个修补分支,最后将改动推送到线上分支。 修改后切换回你最初工作的分支上,继续工作。 1、初始化一个目录并声明用户及邮箱地址 [root@git /]# mkdir /git [root@git /]# cd git/ [root@git git]# git init Initialized empty Git

分布式版本控制系统——Git

孤街醉人 提交于 2020-03-12 13:00:34
分布式相比于集中式的最大区别在于开发者可以将代码提交到本地,每个开发者通过克隆,在本地机器上拷贝一个完整的git仓库。 下图是经典的git开发过程: git的功能特性如下: 从服务器上克隆完整的git仓库(包括代码和版本信息)到单机上; 在自己的机器上根据不同的开发目的,创建分支,修改代码; 在单机上自己创建的分支上提交代码; 在单机上合并分支; 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并; 生成补丁,把补丁发送给主开发者; git可以安装在Windows、mac、Linux等操作系统之上,这里将写下如何安装在Linux系统之上,及其基本操作。 一、安装git 非常简单,就一条命令,如下: [root@git ~]# yum -y install git 二、git库的创建及介绍 [root@git /]# mkdir /git [root@git /]# cd git/ [root@git git]# git init # 初始化为git库 Initialized empty Git reposi tory in /git/.git/ [root@git git]# ls -a #初始化成功后,会生成一个.git的隐藏目录 . .. .git #生成的隐藏目录是用来跟踪管理版本库的,不建议随便修改其目录中的文件, #如果改乱了,就把git库给破坏了。

mac下svn的配置- 。~|||

泄露秘密 提交于 2020-03-12 09:44:07
详细的是这样: 0.建立想要保存软件仓库的目录。 并在系统设置里面打开Web共享。 sudo su (然后输入密码) mkdir /opt mkdir /opt/svn mkdir /opt/svn/repos 即创建了目录/opt/svn/repos/ 1.创建版本仓库 svnadmin create /opt/svn/repos 2.修改授权配置 进入到仓库配置目录 cd /opt/svn/repos/conf (1)编辑配置文件 vi svnserve.conf 取消下列行的注释 anon-access = read auth-access = read password-db = passwd (密码配置的保存文件) auth-db = authz (认证配置的保存文件) (2)编辑密码配置文件 vi passwd 格式为 "用户名 = 密码" (3)编辑认证文件 vi authz 格式为 [groups] 用户组名 = 用户组成员 [需要授权的目录] @组名 = 权限 用户名 = 权限 例如: [groups] g_developers = jcccn,jesse,bill g_tester = jerry,wang [/] @g_developer = r jcccn = rw * = [/jcccn] @g_tester = rw jcccn = rw * = r

版本控制的发展历史

帅比萌擦擦* 提交于 2020-03-12 07:46:40
  早在2000年,CollabNet, Inc.就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS 的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选 择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去处CVS的bug和不 好的特性。   在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真 思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。   当

svn 的一些资料

爷,独闯天下 提交于 2020-03-12 07:01:27
Subversion 是广受欢迎的源代码管理软件,下面是一些常用资料。 服务器端 在实际使用的时候,我们首先需要安装 Subversion 服务器,获取 Subversion 有多种方式。 1. Subversion 的大本营是 Apache 中的 Subversion,从这里可以获取最新的软件。 链接地址: subversion 同时还有一个中文站点 链接地址: 除了官方的文档, i18n-zh 提供了对使用文档的中文翻译,这是位于 Google 上的地址。 链接地址: http://code.google.com/p/i18n-zh/wiki/svnbook 2. 如果访问 Subversion 需要通过某种通讯协议,还有一些安装包提供了完整的解决方案。我使用的是 VisualSVN 链接地址: 有非常简洁的安装程序和管理界面。 客户端 1. 客户端使用可以直接使用 Subversion 的命令行,可以参考 Subversion 的使用手册。 或者买一本专门介绍的书。 2. AnkhSVN ,对于 Visual Studio 的用户来说,使用一个图形界面的插件可能是更佳的选择。 AnkhSVN 为Visual Studio 提供的一个Subversion 源码控制插件。通过该IDE 工具,你可以在Visual Studio 中直接进行大部分版本控制操作。 链接地址:

Git(1):思想及概念

六眼飞鱼酱① 提交于 2020-03-12 04:42:45
Git与其他版本控制软件的差异及思想 直接记录快照,而非差异比较 Git不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。Git 的工作方式就如下图所示。 近乎所有操作都是本地执行 在Git中的绝大多数操作都只需要访问本地文件和资源,不用连网。Git 不用跑到外面的服务器上去取数据回来,而直接从本地数据库读取后展示给你看。所以任何时候你都可以马上翻阅,无需等待。如果想要看当前版本的文件和一个月前的版本之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。 时刻保持数据完整性 在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,Git 一无所知。这项特性作为 Git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。 基本概念 对于任何一个文件,在 Git 内都只有三种状态: 已修改(modified):