5分钟简介版本控制以及git的3个核心概念

本文深入探讨了版本控制的发展历程,从原始的手动本地版本控制到现代的分布式版本控制系统(DVCS),如Git。介绍了集中式版本控制系统(CVCS)与分布式版本控制系统的区别,以及Git中常见概念如仓库、工作区和暂存区的功能与操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本控制

记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本。

原始纯手工的本地版本控制

最原始的版本控制就是通过复制和重命名实现本地文件修改的跟踪

[wlin@wlin local_version]$ ls
1
[wlin@wlin local_version]$ cp 1 1.01
[wlin@wlin local_version]$ echo "update 1" > 1
[wlin@wlin local_version]$ ls
1  1.01
[wlin@wlin local_version]$ cp 1 1.02
[wlin@wlin local_version]$ echo "update 2" > 1
[wlin@wlin local_version]$ ls
1  1.01  1.02

 

版本控制发展: 从集中式到分布式

所有的版本数据都保存在服务器上,一起工作的人从服务器上同步更新或上传自己的修改。比较有名的工具有CVCS(Centralized Version Control Systems)。在这种模式下的团队合作,通常是复制指定版本的快照,进行更新上传快照到统一的服务器上实现的。这个时候的版本控制,获取版本和提交更新都强烈依赖于服务器和快照。

将所有的版本信息仓库全部同步到本地,而非某个版本快照,可以在本地查看所有版本历史,也可以离线提交。获取版本和提交都不再强烈依赖于单个服务器,而只要有一个用户的设备没有问题就可以恢复所有数据。我们称这种为DVCS( Distributed Version Control System),即分布式版本控制。比较有名的工具有GIT。

GIT常见的概念

  • 仓库
    # 初始化本地方库
    git init
    # 远程仓库
    git clone 远程仓库_URL
    # 实际上仓库就是.git文件夹

     

  • 工作区
    #当前文件夹就是工作区
    [wlin@wlin local_version]$ ll
    total 12
    -rw-rw-r--. 1 wlin wlin 52 Jan 21 16:45 1
    -rw-rw-r--. 1 wlin wlin 14 Jan 21 16:43 1.01
    -rw-rw-r--. 1 wlin wlin  9 Jan 21 15:29 1.02
    
  • 暂存区

    # 暂存区实际上就是.git下的一个目录index
    # 该目录并非git的原始目录,而是在你第一次git add文件时生成的
    # 我们可以理解其为added的文件的cache
    [wlin@wlin local_version]$ git init
    Initialized empty Git repository in /home/wlin/local_version/.git/
    [wlin@wlin local_version]$ ll
    total 0
    [wlin@wlin local_version]$ ll .git/
    total 32
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 branches
    -rw-rw-r--. 1 wlin wlin   92 Jan 22 16:07 config
    -rw-rw-r--. 1 wlin wlin   73 Jan 22 16:07 description
    -rw-rw-r--. 1 wlin wlin   23 Jan 22 16:07 HEAD
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 hooks
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 info
    drwxrwxr-x. 4 wlin wlin 4096 Jan 22 16:07 objects
    drwxrwxr-x. 4 wlin wlin 4096 Jan 22 16:07 refs
    [wlin@wlin local_version]$ echo "1" >> new_files
    [wlin@wlin local_version]$ ll .git/
    total 32
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 branches
    -rw-rw-r--. 1 wlin wlin   92 Jan 22 16:07 config
    -rw-rw-r--. 1 wlin wlin   73 Jan 22 16:07 description
    -rw-rw-r--. 1 wlin wlin   23 Jan 22 16:07 HEAD
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 hooks
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 info
    drwxrwxr-x. 4 wlin wlin 4096 Jan 22 16:07 objects
    drwxrwxr-x. 4 wlin wlin 4096 Jan 22 16:07 refs
    [wlin@wlin local_version]$ git status
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #	new_files
    nothing added to commit but untracked files present (use "git add" to track)
    [wlin@wlin local_version]$ git add new_files
    [wlin@wlin local_version]$ ll .git/
    total 36
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 branches
    -rw-rw-r--. 1 wlin wlin   92 Jan 22 16:07 config
    -rw-rw-r--. 1 wlin wlin   73 Jan 22 16:07 description
    -rw-rw-r--. 1 wlin wlin   23 Jan 22 16:07 HEAD
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 hooks
    -rw-rw-r--. 1 wlin wlin  104 Jan 22 16:08 index
    drwxrwxr-x. 2 wlin wlin 4096 Jan 22 16:07 info
    drwxrwxr-x. 5 wlin wlin 4096 Jan 22 16:08 objects
    drwxrwxr-x. 4 wlin wlin 4096 Jan 22 16:07 refs
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值