Git 的原理与使用(上)

Git是一个分布式版本控制系统,它被广泛用于协作开发和管理软件项目。开发人员可以通过Git来跟踪文件的变化、协调工作、并管理项目的不同版本。

Git允许用户在不同的分支上开发新功能,然后合并这些分支并确保团队成员之间的工作协调一致。此外,Git还提供了强大的工具,如提交、合并、回滚等等。因此通过 Git,团队能够高效地管理项目并追踪代码的变化历史。

本文整理自博主日常编码实践中对Git的使用,包括Git的相关概念,基本操作等,希望能带给各位小伙伴们一个关于Git的清晰认识,快速上手。

目录

一、认识 Git

1.提出问题

2.如何解决:版本控制器

二、Git 安装

Linux-centos

Linux-ubuntu

Windows

三、Git 的初始化与配置

1.创建 Git 本地仓库

2.配置 Git

3.查看配置

4.删除配置

四、认识工作区、暂存区、版本库

1.添加文件--场景一

2.查看.git文件

3.添加文件--场景二

4.修改文件

5-版本回退 reset

6-撤销修改

情况一:对于工作区的代码,还没有add

情况二:已经add,但没有commit

情况三:已经add,并且也commit了

7-删除本地仓库中的文件

**小结


一、认识 Git

1.提出问题

不知道你在工作或学习时有没有遇到这样的情况:我们在编写各种文档时,为了防止文档丢失或更改失误,又或是希望在失误后能恢复到原来的版本,不得不复制一个原文档的副本,比如:

“报告-v1”

“报告-v2”

“报告-v3”

“报告-确定版”

“报告-最终版”

“报告-绝对是最终版本再改是狗”

...

每个版本内容各不相同,但最终往往会只有一份报告将为我们所用。而由于每份报告是迭代产出的,于是每次复制粘贴副本,产出的文件就越来越多。

文件多不是问题,问题是:随着版本数量的不断增多,你还能记得这些版本各自都做了哪些修改吗?

文档如此,我们写的项目代码时也是存在这个问题的。

2.如何解决:版本控制器

为了能够让我们更方便地管理不同版本的文件,便有了版本控制器

所谓版本控制器,可以简单地理解为“一个能让你了解到某个文件的历史版本以及发展过程的系统”。换句话说,版本控制器就是一个可以记录工程的每一次改动和版本迭代的一个管理系统,同时也支持多人协同作业。

目前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的文件,例如doc、excel、dwg、dgn、rvt等等。而对于我们开发人员来说,Git最重要的就是可以帮助我们管理软件开发项目中的源代码文件。

有一点需要明确:所有的版本控制系统(Git也不例外)只能跟踪文本文件的改动,比如 txt 文件,网页,所有的程序代码等等。对于文本文件,它可以告诉你每次文件内容的改动情况,比如某文件在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。

但图片、视频这类的二进制文件,虽然也能由版本控制系统管理,但是没法跟踪文件具体的变化信息的。版本控制系统只能把二进制文件的每次改动的结果串起来,只能知道某图片从100KB改成了120KB,但到底改了什么部分,它是并不知道、也没法知道的。


二、Git 安装

Git是开放源代码的代码托管工具,最早是在Linux下开发的,开始也只能应用于Linux平台,后面才慢慢地被移植到Windows下,现在,Git可以在Linux、Unix、Mac和 Windows这几大平台上正常运行了。

对于Git的安装,本文对Linux下的安装作简单介绍,其余系统不作过多说明,有需要的朋友可以自行搜索“Git安装教程”,选择与自身平台相适应的教程进行学习。

Linux-centos

以我的centos7.6为例,安装Git:

sudo yum install git -y

查看Git安装的版本:

git --version

Linux-ubuntu

以ubuntu20.04为例:

sudo apt-get install git -y

查看git安装的版本:

git --version

Windows

Windows下的安装可以看这个视频:

Windows下安装 git 和图形化界面工具

这份视频教程相对细致,且视频中还介绍了Git的UI程序小乌龟(TortoiseGit),UI界面操作Git对于初学者而言更加简洁方便,大家也可以看着下载。


三、Git 的初始化与配置

1.创建 Git 本地仓库

仓库是进行版本控制的文件目录。我们要想对文件进行版本控制,就必须先创建一个仓库出来。只有仓库下的文件才能被Git追踪管理。

创建一个Git本地仓库对应的命令为:

 git init

注意命令要在文件目录下执行,如:

[wyd@VM-4-13-centos ~]$ mkdir gitcode
[wyd@VM-4-13-centos ~]$ cd gitcode

[wyd@VM-4-13-centos gitcode]$ git init
Initialized empty Git repository in /home/wyd/gitcode/.git/
[wyd@VM-4-13-centos gitcode]$ ls -al
total 12
drwxrwxr-x  3 wyd wyd 4096 Dec  1 19:55 .
drwx------ 10 wyd wyd 4096 Dec  1 19:55 ..
drwxrwxr-x  7 wyd wyd 4096 Dec  1 19:55 .git

执行git init后我们发现,当前目录下多了一个.git的隐藏文件。

.git目录是Git用来跟踪管理仓库的。注意,千万不要手动修改这个目录里面的文件,否则改坏了,Git仓库也就随之被破坏了。

.git文件中包含了Git仓库的诸多细节:

[wyd@VM-4-13-centos gitcode]$ tree .git
.git
|-- branches
|-- config
|-- description
|-- HEAD
|-- hooks
|   |-- applypatch-msg.sample
|   |-- commit-msg.sample
|   |-- post-update.sample
|   |-- pre-applypatch.sample
|   |-- pre-commit.sample
|   |-- prepare-commit-msg.sample
|   |-- pre-push.sample
|   |-- pre-rebase.sample
|   `-- update.sample
|-- info
|   `-- exclude
|-- objects
|   |-- info
|   `-- pack
`-- refs
    |-- heads
    `-- tags

9 directories, 13 files

这些字段代表什么含义,我们将在后续对Git的深入学习中逐步接触。 

2.配置 Git

安装Git后首先要做的事情是配置你的用户名(user.name)和email地址(user.email),这是非常重要的一步。

配置命令为:

git config

注意,执行命令时必须要在仓库里(cd gitcode):

git config [--global] user.name "YourName"
git config [--global] user.email "email@example.com"

# 把YourName改成你的昵称
# 把email@example.com改成邮箱的格式,只要格式正确即可。

如:

[wyd@VM-4-13-centos linux_gitcode]$ git config user.name "zhangsan"
[wyd@VM-4-13-centos linux_gitcode]$ git config user.email "123456@qq.com"

其中,--global是一个可选项,如果使用了该选项,则表示这台机器上所有的Git仓库都会使用这个配置。

如果你希望在不同仓库中使用不同的name或e-mail,可以不加 --global 选项。 

3.查看配置

查看配置的命令为:

git config -l

git config -l命令用来列出Git的配置信息。运行该命令将显示当前仓库的Git配置项,包括用户信息、颜色设置、别名、远程仓库等等。通过git config -l可以查看当前Git仓库的所有配置项,帮助用户了解当前Git环境的设置和配置。

此外,用户还可以通过git config --global -l查看全局的Git配置项,该命令将列出全局的Git配置信息。

4.删除配置

删除配置的命令为:

git config [--global]  --unset user.name
git config [--global]  --unset user.email

如果 git conifg 的时候加了--global选项,那么删除的时候也要加上,否则是无法直接删掉 global 的配置的。


四、认识工作区、暂存区、版本库

如果直接将某个文件拷贝到 .git 文件的同级目录gitcode下,此时这个文件是不会被Git管理的。

事实上,.git 目录才是真正的Git版本库(即代码仓库)。

那么,是不是直接把文件拷贝到 .git 目录内就可以了呢?

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值