Git-分布式版本管理系统

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

    这里写图片描述

    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:查看历史命令日志

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值