对于一个刚入行的程序员或者是大学生,我建议大家还是好好的把git学学,因为在现在大部分企业代码的管理工具都是使用Git,其实Git很简单,无非就是一些命令,我们平常多去用它,就能熟能生巧。我觉得你们可以自己去创建Gitee和GitHub账号,把自己的代码托管上去,进行管理。下面就是关于Git的一些总结,觉得有用的建议收藏。
Git 是什么?
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。 Git 与 SVN 区别点:
- Git 是分布式的,SVN不是:这是 Git 和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
- Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
- Git 分支和SVN的分支不同:分支在 SVN 中一点不特别,就是版本库中的另外的一个目录。
- Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
- Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git 快速入门
Git 相关网站
- Git 官网:git-scm.com
- Git 完整命令手册:git-scm.com/docs
- Git 命令手册(pdf版):github-git-cheat-sheet.pdf
- Git 简明指南:git-guide
Git 工作流程
Git 一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
下图展示了 Git 的工作流程:
Git 工作空间
Git 工作空间分为:
- 工作区(Working Directory):在电脑里能看到的目录。
- 版本库(Repository):工作区有一个隐藏目录 .git,这个目录不算工作区,而是 Git 的版本库。
- 暂存区(Stage/Index):一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
图中左侧为工作区,右侧为版本库。在版本库中标记为 index 的区域是暂存区(stage/index),标记为 master 的是 master 分支所代表的目录树。此时 HEAD 实际是指向 master 分支的一个“游标”,所以图示的命令中出现 HEAD 的地方可以用 master 来替换。图中的 objects 标识的区域为 git 的对象库,实际位于 .git/objects 目录下。
- 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树会被更新,同时工作区修改(或新增)的文件内容会被写入到对象库中的一个新的对象中,而该对象的id被记录在暂存区的文件索引中。
- 当执行提交操作 git commit 时,暂存区的目录树会写到版本库(对象库)中,master 分支会做相应的更新,即 master 最新指向的目录树就是提交时原暂存区的目录树。
- 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,会被 master 分支指向的目录树所替换,但是工作区不受影响。
- 当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
- 当执行 git checkout . 或 git checkout -- 命令时,会用暂存区全部的文件或指定的文件替换工作区的文件。这个操作很危险,会清楚工作区中未添加到暂存区的改动。
- 当执行 git checkout HEAD . 或 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或部分文件替换暂存区和工作区中的文件。这个命令也是极度危险的。因为不但会清楚工作区中未提交的改动,也会清楚暂存区中未提交的改动。
Git 文件状态
Git 有三种状态,你的文件可能处于其中之一:
- 已提交(committed):表示数据已经安全的保存在本地数据库中。
- 已修改(modified):表示修改了文件,但还没保存到数据库中。
- 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
Git 安装
在使用 Git 前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。 Git 各平台安装包下载地址为:git-scm.com/downloads
在 Linux 上安装
如果要在 Linux 上用二进制安装程序来安装 Git,可以使用发行版包含的基础软件包管理工具来安装。如果以 Fedora 上为例,可以使用 yum:
$ sudo yum install git复制代码
如果在基于 Debian 的发行版上,请尝试用 apt-get:
$ sudo apt-get install git复制代码
Git 官方网站上有在各种 Unix 风格的系统上安装步骤,网址为 git-scm.com/download/li…。
在 Mac 上安装
在 Mac 上安装 Git 有多种方式。最简单的方法是安装 Xcode Command Line Tools。Mavericks 10.9 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令即可。如果没有安装过命令行开发者工具,将会提示你安装。
如果想安装更新的版本,可以使用二进制安装程序。官方维护的 OSX Git 安装程序可以在 Git 官方网站下载,网址为 git-scm.com/download/ma