钾肥喵的窝

我在 CODING 部署的 Hexo 博客

0%

分布式版本控制系统--Git的简单使用

什么是Git

根据官方网站上的介绍: Git是免费开源的分布式版本控制系统.

什么是版本控制

首先来看这个场景:

张三和李四还有王五要共同完成一份报表, 他们决定分工合作, 一人填写一部分, 然后用QQ发送给对方.

三天以后, 文件夹里躺着十几个同名文件, 王五忍不下去了, 决定改变这个现状, 他决定给文件加上命名规范, 于是文件夹里的文件变成了这个样子:

文件名 解析
财务报表_王五_Part1_20211026.xlsx 王五在2021年10月26日对第一部分进行了修改
财务报表_张三_Part10_20210926.xlsx 张三在2021年9月26日对第十部分进行了修改
财务报表_李四_Part3_20211016.xlsx 李四在2021年10月16日对第三部分进行了修改

一大堆同名文件总算是可以区分了, 这就是一种简陋的手动的版本控制, 可是这样还是不太方便, 我们需要自动化的版本控制.

Git的诞生

Git最初是Linus为了管理Linux的源码而编写的, 最初的代码管理是手动进行的, 后来BitKeeper决定为Linux社区开放免费授权, 但是Linux社区的大佬们岂能受这商业公司的约束, 他们开始对其进行逆向工作. 合作自然是告吹了, Linus决定自行开发自动化版本控制系统, 以十天的时间编写出Git第一个版本.

开始使用Git

本着按需学习的原则, 此处直接介绍如何与Github配合使用.

Git环境的配置

Git的安装

此处仅介绍Windows平台下Git的安装.

从官网下载安装程序即可, 一路Next就可以了.

安装完了应该能在程序列表里看到 Git Bash.

配置Git环境

首先是用户名和邮箱, 因为Git是分布式的版本管理系统, 所以机器需要知道 "来者何人".

1
2
3
git config --global user.name  "自己的用户名"

git config --global user.email "自己的邮箱"

以下是示例:

1
2
3
git config --global user.name  "JiaFeiMiao"

git config --global user.email "JiaFei@jiafeimiao.onmicrosoft.com"

注意命令中的 --global 参数, 该参数表示对配置的修改是全局的, 也就是说, 本机上的所有Git仓库都会使用这个配置, 当然, 也可以对仓库进行单独的设置.

接下来我们需要检查配置是否成功, 可以使用以下命令

1
git config -l

以下是本机上显示的内容 (部分信息用*代替)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
core.editor="C:\Users\Admin\AppData\Local\Programs\Microsoft VS Code\Code.exe" --wait
push.default=simple
user.name=***
user.email=***

至此, Git环境就配置好了, 可以愉快的使用Git了.

Git的使用

创建Git仓库

运行下列命令就能在当前目录建立一个Git仓库了:

1
git init

将文件添加到仓库

1
2
3
git add A.txt
git add A.txt B.txt
git add .

第一条命令是将A.txt添加到仓库, 第二条命令是将A.txtB.txt添加到仓库, 第三条命令是将目录下所有文件添加到仓库.

这里说添加可能不太准确, git add的作用更像是帮助文件进行注册, 从而将其做出的修改纳入下一次提交.

将文件提交到仓库

1
2
git commit
git commit -m "消息"

两条命令都能实现提交, 区别是带-m参数会附上提交的说明, 此处强烈建议不要使用第一条命令, 每次提交都应该有对应的说明.

与Github配合

配置私钥和公钥

相关教程网上有一大把, 内容大同小异, 此处随便取了一个, 这是教程

下面简单讲一下背后的东西.

首先讲一下什么是SSH, 简单来说, SSH就是远程连接过程中的保安, 它能为远程连接提供安全性.

那么什么是私钥和公钥呢? 这是非对称加密中的一组概念.

非对称加密中需要两个密钥: 一个称为公钥, 用于加密明文; 一个称为私钥, 用于解密密文. 用于加密的公钥不能用于解密, 所以被称为非对称加密.

从远处仓库克隆到本地

在文件目录运行以下指令:

1
git clone SSH地址

SSH地址的获取方法: 点击Github仓库中的Code, 然后点击SSH

例如:

1
git clone git@github.com:**/**.git

链接远程仓库

此处假设你经有本地Git仓库了, 如果你没有本地Git仓库, 请看上文.

采用以下命令添加远程仓库.

1
git remote add origin SSH地址

origin是Git默认的远程仓库名称, 你可以修改这个名称.

将修改同步到远程仓库

采用以下命令

1
git push 远程仓库名称 本地仓库名称

请务必注意仓库名称不能填错, 由于之前默认的master有奴隶制糟粕残余的嫌疑, 现在Github等平台默认主分支名称换成了main, push前请确认仓库名称.

确认方法:

在文件目录下打开Git Bash, (右键, 点击Git Bash Here)

1
Admin@LAPTOP-**** MINGW64 /**/**** (master)

括号中的即为要确认的仓库名称, 此处为master.

注意:

push前应该提交修改, 也就是说完整的命令应该是下面的形式(命令的参数均省略):

1
2
3
git add
git commit
git push

将修改同步到本地分支

采用以下命令

1
git pull 远程仓库名称 本地仓库名称