版本控制系统

第二章 Git

主宰稳场 提交于 2019-12-21 20:02:27
1.安装 这个就不必细说了 2.安装完后还要进行一步设置。 在命令行输入: git config --global user.name "Your Name" git config --global user.email "email@example.com" 3.创建版本库 切换到目标文件夹下: git init 4.git add <file>添加文件到仓库 git commit -m<message> 提交所以已经添加的文件 git status 查看仓库当前状态 git diff <file> 查看difference。 git log 查看历史记录,可以加上 --pretty=oneline 这个参数赖过滤一下。前面的大串字符串是每次commit的版本号。在git中,用HEAD表示当前版本。上个版本就是HEAD^,上上个就是HEAD^^,往上100个版本就是HEAD~100. git reset --hard HEAD^.表示回退到上一个版本。 git reset --hard 版本号前几位 :这样还可以返回到回退之前的版本(只要当前窗口还没关,往上找就可以了。) git reflog :这个来记录每一次的命令。还可以根据这个来找commit的版本号。(真牛逼) git push origin master. 向远程origin仓库push master分支。 5

Git

人盡茶涼 提交于 2019-12-21 20:01:53
1. Git 历史 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。 到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标: • 速度 • 简单的设计 • 对非线性开发模式的强力支持(允许上千个并行开发的分支) • 完全分布式 • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) 2. Git 与 SVN 对比 2.1 SVN 概述 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下

Git使用初步

眉间皱痕 提交于 2019-12-21 19:54:57
1.什么是版本控制 版本控制(Revision control),也叫版本管理,是一种软件工程技巧,藉以在开发的过程中,确保由不同人所编辑的同一档案都能得到更新,大大方便了多人协作完成同一个工程。版本控制通过文档控制(documentation control)记录工程中每一个模块的改动,并为每次改动编上序号,以此可以方便的查询或者是恢复到以前版本。 2.为什么需要版本控制? 没有版本管理工具的协助,在开发中我们经常会遇到下面的问题: a.无法跟踪文件改动。有人删除或者添加了一个文件时,你很难发现;这种情况也会发现在我们自己身上,有时候误删的事也会有。或者还会有不小心的覆盖等。 b.解决代码冲突困难。大家同时修改一个公共文件时,解决冲突也是个很头疼的问题。最原始方法是手动打开冲突文件,逐行比较,再手工粘帖复制。 c.参考a,b。 此外,还有一个很有诱惑里的用法,你可以一会儿在笔记本上改,一会儿在台式机上改,不用担心,操作的都是同一个文件。有点像云服务,不过不同计算机间同步在分布式的版本控制系统上实现更方便。 3.版本控制系统的发展历史 a.最原始的方法是为不同的版本新建一个文件夹。ok,亲身经历过不小心把整个文件夹shift+delete的悲剧。后来有种流行的东西叫rcs,通过记录文件的改动来达到版本控制的目的,俺没用过。 b.集中式版本控制系统。如著名的CVS,SVN等,抱歉

版本控制Git

非 Y 不嫁゛ 提交于 2019-12-21 19:19:08
文章目录 版本控制系统: 版本控制软件 分布式版本控制 部署Git服务器 客户端测试(192.168.2.200作为客户端主机) HEAD指针操作 Git分支操作 Git服务器形式 版本控制系统: 集中式版本系统 – 开发者之间共同用一个仓库(repository) – 所有操作需要联网 分布式版本控制系统 – 每个开发者都是一个仓库的完整克隆,每个都是服务器 – 支持断网操作 版本控制软件 集中式版本控制软件 – CVS – SVN (Subversion) 分布式版本控制软件 – Git – BitKeeper (收费) 分布式版本控制 Git基本概念 – Git仓库: 保存所有数据的地方 – 工作区: 从仓库中提出的文件,放在磁盘上提供你使用或修改 – 暂存区: 就是一个文件,索引文件,保存了下次讲提交的文件列表信息 部署Git服务器 安装Git软件 #yum -y install git 初始化一个空仓库 #mkdir /var/git #git init /var/git/project --bare #ls /var/git/project 客户端测试(192.168.2.200作为客户端主机) 使用git常用指令列表如表-1所示。 表-1 git常用指令列表 clone克隆服务器仓库到本地。 [root@web2 ~]# yum -y install git

SVN客户端服务器搭建与使用(一)

房东的猫 提交于 2019-12-21 04:36:10
Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html 这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址. windows操作系统下面的二进制文件包一共有5种,如图: 个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用. 点开上面的VisualSVN连接,下载VisualSVN server,如图: 然后下载TortoiseSVN客户端,官网下载地址: http://tortoisesvn.net/downloads.html 注意下载跟你电脑匹配的安装包,在页面的下面你还可以找到语言包,如图: 下载完成后,应该有这些安装包,如图: TortoiseSVN安装包和简体中文语言包 VisualSVN server安装包 先安装VisualSVN server的安装包,双击VisualSVN server安装包,如图: 点Next,进入下一步,如图: 点同意,进图下一步,如图: 选择上面一个选项,点Next,进入下一步,如图: Location是指VisualSVN Server的安装目录

Git 和 SVN之间的五个基本区别

末鹿安然 提交于 2019-12-21 03:08:53
GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上究竟有什么不同来帮助你认识它。 那好,这就开始吧… 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如 Bitkeeper , Mercurial 等,也是运行在分布式模式上的。但GIT在这方面做的更好,而且有更多强大的功能特征。 GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提 交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。 同样,这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包

编译Android系统源码

好久不见. 提交于 2019-12-21 01:26:01
步骤 : 1:下载源码 2:搭建编译环境 3:编译( 一定要等源码下载完整再编译) 硬件软件要求 官方文档 : https://source.android.google.cn/setup/build/requirements 硬件要求 : 如果是 Android 2.3.x (Gingerbread) 及更高版本(包括 master 分支),需要使用 64 位环境。如果是较低的版本,则可以在 32 位系统中进行编译。 如果要检出代码,至少需要 250GB 可用磁盘空间;如果要进行编译,则还需要 150GB。如果要进行多次编译,则需要更多空间。 如果在虚拟机中运行 Linux,则至少需要 16GB 的 RAM/交换空间。 我装的是虚拟机Ubuntu16.0.4,根据官方的要求准备了520G,下载的是8.1的源码,编译完以后发现还有250G。多分配点空间更好以免空间不足扩容麻烦。 一、 下载源码 Android 源码是非常庞大的,而且每个模块都是用git来进行管理 ,整个Android源码是由很多个git项目构成,Google对Android代码的更新也是更新到相应模块的git项目上。 那对于需要编译Android的开发者来说,要分别clone 每个git项目而且还要放到固定的位置确实是件惨绝人寰的事,所以Google就开发了一个基于Python编写的帮助开发者管理多个项目的工具

【Git】(1)---工作区、暂存区、版本库、远程仓库

[亡魂溺海] 提交于 2019-12-21 01:25:26
Git 与 SVN 区别点 : 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。 Git 安装包下载地址: http://git-scm.com/downloads Git 常用命令 1、新建代码库 # 在当前目录新建一个Git代码库 git init # 下载一个项目和它的整个代码历史 git clone [url] 2、查看文件状态 #查看指定文件状态 git status [filename] #查看所有文件状态 git status 3、工作区<-->暂存区 # 添加指定文件到暂存区 git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录

git使用中的一些命令及心得

风流意气都作罢 提交于 2019-12-21 01:25:04
Git 与 SVN 区别点: 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心 的区别。 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个 类似 .svn、.cvs 等的文件夹里。 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整 性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。 命令: 0.切换磁盘,从C盘切换到E盘: cd E: ; 与cmd不同,cmd为: E: ; 1.创建一个名为test的目录 : mkdir test 2.初始化一个 Git 仓库,即把这个目录变成Git可以管理的仓库: git init 3.Git 配置 : git config + 其他相关命令(参考:https://www.runoob.com/git/git-install- setup.html 或 https://www.liaoxuefeng.com/wiki

GIT和SVN之间的五个基本区别

眉间皱痕 提交于 2019-12-21 00:00:05
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了。 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上究竟有什么不同来帮助你认识它。 那好,这就开始吧… GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的。但GIT在这方面做的更好,而且有更多强大的功能特征。 GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。 同样