0%

Git基础

版本控制

版本控制是一种在开发过程中用于管理我们对文件、目录或工程内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

  • 实现跨区域多人协同开发
  • 追踪和记录一个或多个文件的历史记录
  • 组织和保护源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,降低人为错误

是一种用于管理多人协同开发项目的技术。

常见版本控制工具

  • Git

  • SVN(SubVersion)

  • CVS(Concurrent Versions System)

  • VSS(Micorosoft Visual SourceSafe)

  • TFS(Team Foundation Server)

  • Visual Studio Online

  • ……

版本控制分类

  • 本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,适合个人使用。
  • 集中式版本控制 SVN:所有的版本数据都保存在一台服务器上,协同开发者从服务器上同步更新或上传自己的修改。
  • 分布式版本控制 Git:所有版本信息同步到本地的每个用户。可以离线在本地提交,联网时push到相应服务器或其他用户。每个用户保存的都是所有的版本数据,每个人都拥有全部代码。

Git与SVN的区别

Git是分布式版本控制,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网。协同时如果两个人同时修改了A文件,会把各自的修改推送给对方,就可以互相看到对方的修改了。

SVN是集中式版本控制,版本库集中放在中央服务器,工作的时候需要从中央服务器先获取最新的版本,完成工作后需要将自己的代码推送至中央服务器。集中式版本控制必须要联网才能工作。

Git下载及安装

参考博客:个人博客第2篇——Git 2.25.0详细安装步骤 - 知乎 (zhihu.com)(若有侵权联系我删除)

若下载速度慢可以去镜像下载:CNPM Binaries Mirror (npmmirror.com)

Git配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ git config -l	# 查看环境配置
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=D:/Git/mingw64/etc/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.email=***@qq.com
user.name=***

查看不同级别的配置文件:

1
2
3
4
5
# 查看系统配置
git config --system --list

# 查看当前用户(global)配置
git config --global --list

Git相关配置文件保存在本机:

  • Git\etc\gitconfig Git安装目录下 保存的是system级别配置
  • C:\User\user\ .gitconfig 该文件保存的是用户级别的配置

配置用户名和邮箱:

1
2
git config --global user.name "testname"
git config --global user.email "test@qq.com"

也可直接修改配置文件。

Git基本理论

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository/Git Directory)。如果再加上远程的git仓库(Remote Directory)就可以分为四个工作区域,文件在这四个工作区域的转换关系如下:

1713750770890

  • Working Directory:工作目录,平时本地存放代码的地方
  • Stage/Index:暂存区,用于临时存放改动,事实上它只是一个文件,保存即将提交的文件列表信息
  • History/Repository:仓库区或本地仓库,安全存放数据的位置,这里有提交的所有版本的数据。
  • Remote:远程仓库,托管代码的服务器。

工作流程

git工作流程一般是这样:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域(add);
  3. 将暂存区域的文件提交到git仓库(commit);
  4. 将本地仓库的文件push到远程仓库(push)。

因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(commited)

Git项目搭建

工作目录(workspace)一般是希望Git帮助管理的文件夹,可以是项目目录,也可以是一个空目录,建议不要有中文。日常常用下图6个命令。

1713751830621

本地仓库搭建

创建本地仓库的方法有两种:创建全新的仓库、克隆远程仓库。

  1. 创建全新仓库

在工作目录打开gitbash或cd进入工作目录,执行git init命令,执行完成后工作目录会出现一个.git的隐藏文件夹,里面存了关于版本等所有信息。

  1. 克隆远程仓库

将远程服务器上的仓库完全镜像一份到本地,包括他的整个代码历史(版本信息)。

原创技术分享,您的支持将鼓励我继续创作