『Git 干货』#1 基础知识介绍(简明)

2021-10-19  本文已影响0人  Hwcoder

访问博客查看 本文 最新内容,排版更美观ヾ(•ω•`)o 如有错误欢迎指出~

Git 系列学习笔记:

无意中发现了清华贵系科协的暑培项目,内容都十分贴合计算机系学生的学习需求,正好下学期有「软件工程」课,就决定先把 Git 入门了。

本文大部分内容参考了 RCY 同学的教程,部分参考了 廖雪峰教程-Git菜鸟教程-Git,以及 Git 官网文档 Git-Documentation

版本控制软件

版本控制是合作开发、工程项目中必要的手段,考虑以下情况:

为了让这样繁琐的工作自动化,就有了以下的工具:

关于 Git

事实上,Git 仅在过去十年里,就以极快地速度占据了市场。与 SVN 的集中式不同的是,Git 采用的分布式,除了少数的交互步骤外,版本控制操作、历史记录都在本地,这保证了它极高的操作效率。

所谓集中式, 即所有人都把代码放到一个远程的服务器,要写代码时将远程资源拉取到本地,用一个同一的仓库来实现协同。

所谓分布式,即每个人都有自己的仓库,每个仓库都可能存放着最新的代码,需要修改时直接在本地修改(即使断网),需要同步时再与远程仓库交互。

模式

多数版本控制软件是基于差异的控制,即不同版本间记录的是文本的「变化」,版本切换时再根据 delta 前进和后退。

Delta-based

而 Git 采用的是「快照」的方法,对每个版本记录全部文件快照并建立索引(特别地,没有变动的文件只是创建一个链接指向之前的快照)。

Snapshot-based

这样做的好处是,Git 切换版本和分支的速度远快于第一种模式。因为 Delta-based 模式下,切换版本相当于一个线性遍历的过程,而 Git 相当于是在文件系统层面做了一个哈希索引。

此外,快照并不是以整个文件为单位的,否则修改一行就需要增量整个文件的大小,在 Git 中是以为单位进行 diff 的。因此对于二进制文件,Git 的功能就相对较差。

基本状态

Git 中用三个状态来区分文件,生成版本:

这三个状态对应到了 Git 的三个区域:工作区、暂存区、Git 仓库:

三个区域

如果修改了一个已暂存的文件,它会同时出现在工作区和暂存区两个区域,此时可以选择再次暂存,覆盖掉暂存区的文件;也可以选择恢复工作,撤销后来的修改,覆盖掉工作区的文件(但暂存区的仍然保留)。

因此,我们可以对这三个区域加以定义:

使用 Git

在官网的文档中有详细的介绍,这里仅介绍部分常用内容。

命令行界面

Git 同时提供了 GUI 和 Bash 的操作方式,但图形界面功能不够齐全,同时容易误触造成无法逆转的文件改动。

使用命令行界面 (Command Line Interface) 意味着:

对 Windows 而言,cmd 、Power Shell、WSL、Git 都可以提供命令行界面,为了执行下列 Git 指令,需要使用 Git 提供的终端,在文件夹中右键选中 Git Bash Here 即可。

关于命令行界面,有这些常用快捷键:

一些在 Git 使用中会用到的 Shell 命令有:

Git 基本指令

这里先列举一些基本指令,它们的使用格式基本都是 git <instruction> <other-params-if-needed> 。以下列举的都是 <instruction> 项,对应的参数在后面介绍。

本地基本操作:

远程基本操作:

分支操作:

状态切换:

信息获取:

上一篇 下一篇

猜你喜欢

热点阅读