Git-分布式版本管理系统
2016-08-07 18:41
253 查看
定义
分布式版本管理与控制系统与传统的集中式(中心化)管理相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,即使没有网络你也可以提交变动到版本库(因为本地就有一个完整的版本库),git的中心库和SVN等传统版本控制系统不同,它不是一切的中心(大脑),而仅仅也是一个副本,它的存在只是为了方便协作开发,大家方便提交变动和同步变动。但是这里说的不依赖网络,并不是完全不依赖网络就能完成所以的事情,比如让其他开发人员拿到你的改动,所以说这里所说的不依赖网络只是相对的,在没有网络的情况下,可以提交变动到本地的版本库,但最终还是要依赖网络提交变动让其他开发人员看到。一旦长时间不进行代码同步(不同开发者之间),很可能会产生变动冲突,这时候就需要人工来解决冲突。
相较于传统的SVN、CVS、CC,Git管理的不是文件而是变动(change)
概念
![](https://img-blog.csdn.net/20160807183347246)
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:查看历史命令日志
分布式版本管理与控制系统与传统的集中式(中心化)管理相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,即使没有网络你也可以提交变动到版本库(因为本地就有一个完整的版本库),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:查看历史命令日志
相关文章推荐
- Git 分布式版本管理系统
- Git使用流程(分布式版本管理系统)
- git分布式版本管理系统工作原理详解
- xcode 4 Git版本管理系统详解
- 分布式版本管理工具GIT使用心得
- 【Git分布式版本控制系统】远程仓库管理
- 分布式版本控制系统Git------分支管理与合并(merge与rebase)
- Android Studio AS 中配置强大的版本管理系统(Git、SVN、等)
- xcode 4 Git版本管理系统详解
- [Android Studio 权威教程]AS 中配置强大的版本管理系统(Git、SVN、等)
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
- AS 中配置强大的版本管理系统(Git、SVN、等)
- Android Studio 中配置版本管理系统Git
- 分布式版本管理神器--GIT
- git版本管理系统使用
- 分布式版本管理工具GIT
- 版本管理系统之GIT
- 分布式版本管理git学习资料整理推荐
- 菜鸟学习版本管理系统 Git 和 代码托管平台 GitHub
- 分布式版本管理——git:常用命令