【Git】分布式版本控制系统

        又是查缺补漏的一天,工作之后才知道 git 对于协作开发是多么的重要!作为一名小小的前端开发,目前只会提交代码 and 合并代码,合重要代码的时候生怕报错了,代码冲突了,真的很悲伤。于是现在又开始学习 git 了......

        看大家推荐的是廖雪峰官方网站的 git 教程:Git简介 - 廖雪峰的官方网站,说是浅显易懂,不多说,开始学习了。因为个人是基于 Windows 平台开发,所以这篇笔记的示例截图都是 Windows 平台。本篇笔记是以廖雪峰的官方网站理论+个人实践为主,学习过程中额外补充的内容为辅。

        深入学习可看 git 官方文档:Git

一、git 简介

        git是目前世界上最先进的分布式版本控制系统(没有之一)。

        git 的重要性在这里就不多说了,只要是公司的多人开发项目基本用的都是 git,进项目组的时候 leader 让你拉下代码,提交下代码,要是说不会的话真的就尬住了。目前我学习的重点在“更好的使用 git”而不是“研究 git”。

1、什么是版本控制系统?

        以咱们的毕业论文为例,我们把初稿提交给导师,导师返回了各种意见,我准备开始修改了,但是又害怕我改了之后又让我用原来的,这时候怎么办呢,谨慎的同学就会先复制一份出来修改,并命名为 [毕业论文_V2],进而出现[毕业论文_V3]、[毕业论文_V4]......我们担心需要用到之前的文件,所以保存了下来,事实上是基本不会再用了,因为我们根本不会记得这些版本之间到底改了什么,如果有一个工具,能记录下每次更改了什么并且让你和老师都能够一起修改那就好了。这就是版本控制系统。

2、集中式 VS 分布式

2.1 集中式版本控制系统

        集中式版本控制系统(CVS / SVN)都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

        缺点:(1)必须联网才能工作,如果服务器故障了就无法工作。(2)数据保存在中央服务器上。协同开发者从服务器上同步更新或上传自己的修改。但这样用户本地只有同步更新前的版本,存在服务器损坏则丢失全部数据的风险,需要定期备份等。

2.2 分布式版本控制系统

        分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。但为了能够方便“交换”大家的修改,分布式版本控制系统通常也有一台充当“中央服务器”的电脑。

        分布式相比于集中式的优势:(1)开发者可以在本地机器上拷贝一个完整的Git仓库。可以在本地查看所有版本历史,可以离线在本地提交,在连网时提交即可,不会因为服务器损坏或者网络问题,造成不能工作的情况。(2)安全性更高,只要有一个用户的设备没有问题就可以恢复所有的数据。

3、Windows 安装 git 

        参考:Git Windows版的安装与使用(保姆级教程,附案例)_windows git-CSDN博客

        强调一点,必须要设置的你的姓名和邮箱,否则在 vscode 中提交会弹出 git 报错:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

二、git 基础理论

1、工作区

        git 本地有三个工作区,再加上远程的 git 仓库共四个工作区

        (1)工作目录(Working Directory):工作区,就是平时存放项目代码的地方。
        (2)暂存区(Stage/Index):暂存区,用于临时存放你的改动。
        (3)资源库(Repository):版本库,就是安全存放数据的位置。
        (4)git仓库(Remote Directory):远程仓库,托管代码的服务器。         

        参考:Git总结-看这一篇就够了!-腾讯云开发者社区-腾讯云 

2、创建版本库

        什么是版本库呢?版本库又名仓库,英文名 repository。你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

        本小节命令汇总:

git init 初始化仓库
git add 添加文件到暂存区
git commit 提交暂存区到本地仓库

(1)创建一个空目录。

(2)把这个目录变成 Git 可以管理的仓库:git init

初始化之后出现 .git 目录,用于 Git 跟踪管理版本库。没有特殊需求不要手动修改此目录中的文件信息。.git 目录是隐藏的,你可以通过以下操作看见。

(3)在版本库中添加文件

注意:千万不要使用 Windows 自带的记事本编辑任何文本文件。原因是 Microsoft 开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载 Visual Studio Code 代替记事本,不但功能强大,而且免费!

        方便起见,以下所有命令我会在 vs 终端上输入。

        在 learngit 目录(或子目录)下新建一个 readme.txt 的文件,并输入一些内容。

        此时 readme.txt 文件在本地工作区,我们进行如下两步操作将它添加到仓库中,如下: 

        a. 第一步,用命令 git add 告诉Git,把文件添加到仓库。 

git add <filename>  // 添加特定文件到暂存区
git add .   // 添加所有更改的文件到暂存区

        b. 第二步,用命令 git commit 告诉Git,把文件提交到仓库。

git commit -m <message>

        git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。git commit 命令执行成功后:[ 1 file changed ] 一个文件被改动,[ 2 insertions(+) ] 插入了两行内容。

三、时光机穿梭

1、查看状态和变更

git status 查看仓库当前的状态,显示有变更的文件
  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值