您的位置:首页 > 其它

Git-分布式版本管理系统

2016-08-07 18:41 253 查看
定义

分布式版本管理与控制系统与传统的集中式(中心化)管理相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,即使没有网络你也可以提交变动到版本库(因为本地就有一个完整的版本库),git的中心库和SVN等传统版本控制系统不同,它不是一切的中心(大脑),而仅仅也是一个副本,它的存在只是为了方便协作开发,大家方便提交变动和同步变动。但是这里说的不依赖网络,并不是完全不依赖网络就能完成所以的事情,比如让其他开发人员拿到你的改动,所以说这里所说的不依赖网络只是相对的,在没有网络的情况下,可以提交变动到本地的版本库,但最终还是要依赖网络提交变动让其他开发人员看到。一旦长时间不进行代码同步(不同开发者之间),很可能会产生变动冲突,这时候就需要人工来解决冲突。

相较于传统的SVN、CVS、CC,Git管理的不是文件而是变动(change)

概念



2.1 工作区

我们在本机创建的目录,我们会在这个目录下面创建文件。

git checkout – file:丢弃工作区的修改

要注意这时chekcout 是把工作区的文件 file 还原到上一次提交到暂存区的变动(也可理解成用上一次提交到暂存区的变动覆盖工作区的文件)而不管这个变动是否已经提交到版本库。如果是一个新建的文件,还没有提交到暂存区(也就是说肯定没有提交到版本库了),checkout命令并不能回退当前内容到上一个版本(因为没有提交到暂存区,工作区的改动谈不上版本,任何改动也得 不到追踪)。

2.2 暂存区(stage)

工作区的任何改动需要添加到暂存区才能提交到版本库(我的理解是只有添加到暂存区的变动,才能被git管理)。

git add file :把file的变动添加到暂存区

git reset HEAD file:把file在暂存区的内容回退到提交到版本库的最新版本(也可以理解成用版本库中file的最新版本覆盖暂存区的内容)。

2.3 版本库

所有文件所有版本的集合。

git commit -m “log message” :提交暂存区的变动到版本库

git reset –hard HEAD^:把版本库的file回退到最新版本的上一个版本,HEAD^^表示上上个版本,HEAD~77表示往上77个版本(如果写77个^你会崩溃!!!)。

git reset –hard 34343:把版本库的file回退到 commit id = 34343 的版本

2.4 分支

每个(有可能是其中一部分)文件的某个版本串起来的一条文件集合,通过git commit 命令把变动提交到分支。

2.5 其他常用命令

git status:查看当前状态

git log:查看提交日志

git reflog:查看历史命令日志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: