Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置

796 阅读23分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、前言

讲讲小张的感受:我没有接触过Git,所以看了很多视频,对于入门使用确实只要知道git clone,git add,git commit,git push,git merge ,确实也就足够了。但是我很好奇背后的原理,为什么要用git add到暂存区而不是直接git commit?很多指令之间为什么要按一定的顺序执行?所以这个系列我以初学的时候,小白的角度从安装到工作原理(有的是我自己的见解,如果感觉不对,欢迎指正),再到实际应用!另外,推荐看一遍第三个参考视频,然后看一下第四个参考视频,对工作原理的讲解和实际应用确实不错!

这次笔记很多,所以慢慢更新,需要的小伙伴可以自行下载markdown笔记:Gitee,Github,两个是一样的,习惯哪个就用哪个下载

本期先介绍什么是版本控制? Git的历史与安装、配置,下一期开始讲原理与指令

二、版本控制

2.1什么是版本控制?

Q:什么是==版本控制==?

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

A:版本迭代,新的版本

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

简单说就是用于管理多人协同开发项目技术

没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。

无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!不停的修改、提交,我们就迫切需要一个版本控制工具!通过版本控制可以回溯历史版本。

img-k8h7QQgo-1643168463037

多人开发就必须要使用版本控制!

常见的版本控制工具

主流的版本控制器:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),现在影响力最大且使用最广泛的是Git与SVN

2.2版本控制的分类

1.本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2.集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改

img-oJTuhUnv-1643168463043

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,==所有数据都保存在单一的服务器上==,有很大的风险这个服务器损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS

3.分布式版本控制 Git

每个人都拥有全部的代码!==安全隐患==!程序员携代码跑路!!!

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

不会因为服务器损坏或者网络问题,造成不能工作的情况!

img-lw6YLnIj-1643168463045

2.3Git与SVN最主要区别

==笔试可能会问到==

Q:Git与SVN最主要区别是什么?

A:SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。 Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

Git是目前世界上最先进的分布式版本控制系统

三、Git历史

同生活中的许多伟大事物一样,Git诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper(付费)来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!)也就是后来的 Git!

Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!

img-VecbvqTg-1643168463046

Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰

四、Git安装及卸载

4.1安装

以下除了第三步修改路径,第四步我加了添加快捷方式,其余都为默认设置,无脑安装即可。只是做了一些解释,如果有需要,可以根据自身情况修改。

4.1.1软件下载

git官网,下载git对应操作系统的版本。所有东西下载慢的话就可以去找镜像!官网下载太慢,我们可以使用淘宝镜像下载

git官网给出的指令教程

img-LhhUf8jm-1643168463047

4.1.2使用许可声明

双击下载好的安装包,开始安装,点击Next

img-YEb4gFQY-1643168463048

4.1.3选择安装目录

修改一下路径,点击Next

img-Me1IqBX9-1643168463049

4.1.4选择安装组件

这里我勾选了添加桌面图标(个人习惯)。点击Next

mg-GTBPI8UA-1643168675188

4.1.5选择开始菜单文件夹

==文本框不能为空==,如果不要添加到开始菜单,勾选即可。

img-vokfjlPP-1643168838565

安装后菜单栏如图

img-lYsunzTY-1643168463052

4.1.6选择 Git 默认编辑器

Git 安装程序里面内置了 10 种编辑器,比如 AtomNotepadNotepad++Sublime TextVisual Studio CodeVim 等等,默认的是 Vim ,选择 Vim 后可以直接进行到下一步,但是Vim是纯命令行,操作有点难度,需要学习。如果选其他编辑器,则还需要去其官网安装后才能进行下一步。 下图为默认编辑器 Vim可直接点击Next到第七步。

mg-CoLQQ8vG-1643168463052

如果你不想用 Vim 当默认编辑器,换一个,比如 Notepad++ ,那么你者需要点击下面的蓝色字体 " Notepad++ " 去其官网下载安装好才能进行下一步 next

mg-kQHNkDTD-1643168463053

安装后还要配置在我的电脑->属性->高级系统设置->高级->环境变量->系统变量->Path->编辑添加Notepad++ 的安装地址,如 C:\Program Files\notepad++ 这样才能在 Git Bash 里面直接调用 Notepad++。点击Next到第七步。

4.1.7决定初始化新项目(仓库)的主干名字

第一种是让 Git 自己选择,名字是master,但是未来也有可能会改为其他名字;第二种是我们自行决定,默认是main,当然,你也可以改为其他的名字。一般默认第一种,点击Next到第八步。

注: 第二个选项下面有个NEW!,说很多团队已经重命名他们的默认主干名为main. 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动,很多人认为master不尊重黑人,呼吁改为main.

img-wsWTHjTJ-1643168463060

4.1.8调整path 环境变量

点击Next

这步意思是指使用什么方式打开git? 第一种是仅从==Git Bash==使用Git。这个的意思就是你只能通过Git安装后的Git Bash来使用Git,其他的什么命令提示符啊等第三方软件都不行。 第二种是==从命令行以及第三方软件进行 Git==。这个就是在第一种基础上进行第三方支持,你将能够从==Git Bash==,==命令提示符(cmd)== 和 ==Windows PowerShell==以及可以从 ==Windows 系统环境变量==中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。 第三种是从==命令提示符使用 Git 和可选的 Unix 工具==。选择这种将覆盖 Windows 工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话,适合比较懂的人折腾。

image-20220117123937426

翻译

Adjusting your PATH environment 调整路径环境

How would you like to use Git from the command line? 您希望如何使用命令行中的Git?

  • use Git from Git Bash only 只使用Git Bash中的Git

This is the most cautious choice as your PATH will not be modified at all.You wonly be able to use the Git command line tools from Git Bash. 这是最谨慎的选择,因为您的路径根本不会被修改,您将只能使用Git命令行工具Git Bash。

  • Git from the command line and also from 3rd-party software git来自命令行,也来自第三方软件。

(Recommended) This option adds only some minimal Git wrappers to yourPATH to avoid cluttering your environment with optional Unix tools. (推荐)此选项只向您的PATH添加一些最小的Git包装器,以避免将您的环境与可选的Unix工具相混淆。

You will be able to use Git from Git Bash, the Command Prompt and the WindovPowershell as well as any third-party software looking for Git in PATH. 您将能够使用Git从Git Bash,命令提示符和WindovPowershell以及任何第三方软件寻找Git的路径。

  • use Git and optional Unix tools from the Command Prompt 从命令提示符中使用Git和可选Unix工具

Both Git and the optional Unix tools will be added to your PATH. Git和可选的Unix工具都将添加到您的路径中。

Warning: This will override Windows tools like "find" and "sort". onlyuse this option if you understand the implications. 警告:这将覆盖Windows工具,如“查找”和“排序”。只有当你理解其含义时,才使用这个选项。

4.1.9选择SSH可执行文件

点击Next

image-20220117145123565

翻译

choosing the SSH executable 选择SSH可执行文件

Which Secure Shell client program would you like Git to use? 您希望Git使用哪个安全的Shell客户端程序?

  • use bundled opensSH 使用捆绑开放SH

This uses ssh.exe that comes with Git. 它使用Git附带的ssh.exe。

  • Use external opensSH 使用外部操作系统SH

NEW!This uses an external ssh.exe.Git will not install its own OpenSSH(and related) binaries but use them as found on the PATH. 新的!这将使用外部的ssh.exe.Git不会安装它自己的OpenSSH(和相关的)二进制文件,而是像在路径上找到的那样使用它们。

4.1.10选择HTTPS后端传输

点击Next

image-20220117145227617

翻译

Choosing HnIPS transport backend 选择HnIPS传输后端

which SSL/TLS library would you like Git to use for HTTPS connections? 对于HTTPS连接,您希望Git使用哪个SSL/TLS库?

  • use the openSSL library 使用OpenSSL库

server certificates will be validated using the ca-bundle.crt file. 服务器证书将使用ca-bundle.crt文件进行验证。

  • use the native Windows secure Channel library 使用本机Windows安全通道库

Server certificates will be validated using Windows Certificate Stores. 服务器证书将使用Windows证书存储进行验证。

This option also allows you to use your company's internal Root CA certificatesdistributed e.g. via Active Directory Domain Services. 此选项还允许您使用公司的内部根CA证书,例如通过ActiveDirectory域服务分发的。

这两种选项有什么区别呢?git - What's the difference between OpenSSL and the native windows Secure Channel library - Stack Overflow

如果在具有企业管理证书的组织中使用 Git,则将需要使用安全通道。如果你仅使用 Git 来访问公共存储库(例如 GitHub ),或者你的组织不管理自己的证书,那么使用 SSL 后端(它们只是同一协议的不同实现)就可以了。

也就是说,作为普通用户,只是用 Git 来访问 Github、GitLab 等网站,选择前者就行了。点击next到第十一步。

4.1.11配置行尾符号转换

点击Next

image-20220117145441510

翻译

Configuring the line ending conversions 配置行结束转换

How should Git treat line endings in text files?

  • Checkout windows-style, commit Unix-style line endings 签出窗口样式,提交unix样式的行尾。

Git will convert LF to CRLF when checking out text files. When committingtext files, CRLF will be converted to LF. For cross-platform projects, GIT将在签出文本文件时将LF转换为CRLF。提交文本文件时,CRLF将转换为LF。跨平台项目,

this is the recommended setting on Windows (" core.autocrif" is set to "true"). 这是在Windows上建议的设置(“core.autocrif”设置为“true”)。

  • checkout as-is, commit Unix-style line endings 以-is签出,提交unix样式的行尾。

Git will not perform any conversion when checking out text files. when 当签出文本文件时,git将不会执行任何转换。什么时候

committing text files,CRLF will be converted to LF.For cross-platform projects,this is the recommended setting on Unix ("core.autocrlf" is set to "input"). 提交文本文件时,CRLF将转换为LF.or跨平台项目,这是Unix上的建议设置(“core.autocrlf”设置为“input”)。

  • checkout as-is, commit as-is 按-原样结帐,按-原样提交

Git will not perform any conversions when checking out or committingtext files.Choosing this option is not recommended for cross-platformprojects ("core.autocrlf" is set to "false"). 当签出或提交文本文件时,git将不会执行任何转换。对于跨平台项目,不建议选择此选项(“core.autocrlf”设置为“false”)。

这三种选择分别是:

  • 签出 Windows 样式,提交 Unix 样式的行结尾。

  • 按原样签出,提交Unix样式的行结尾。

  • 按原样签出,按原样提交。

那 Windows 样式和 Unix 样式到底有什么区别呢?

引用 《GitHub 入门与实践第 50 页内容

GitHub 中公开的代码大部分都是以 Mac 或 Linux 中的 LF(Line Feed)换行。然而,由于 Windows 中是以 CRLF(Carriage Return+ Line Feed)换行的,所以在非对应的编辑器中将不能正常显示。

Git 可以通过设置自动转换这些换行符。使用 Windows 环境的各位,请选择推荐的 “Checkout Windows-style,commit Unix-style line endings” 选项。换行符在签出时会自动转换为 CRLF,在提交时则会自动转换为 LF .

上面说 Mac 、Linux、Unix 的 Line Feed ,翻译过来就是换行符,用 “\n” 表示,换行符 “\n” 的 ASCII 值为10; Windows 的是 Carriage Return+ Line Feed(回车+换行),用 “\r\n” 表示,回车符 “\r” 的 ASCII 值为13;

这上下两者是不一样的。 我们现在的教程就是介绍怎么安装 Windows 版 Git,肯定选第一项啦。

4.1.12配置终端模拟器以与 Git Bash 一起使用

点击Next

image-20220117150139136

翻译

Configuring the terminal emulator to use with Git Bash 配置用于Git Bash的终端模拟器

which terminal emulator do you want to use with your Git Bash? 您想在Git Bash中使用哪个终端模拟器?

  • Use MinITY (the default terminal of MsYs2) 使用MinITY(MsYs 2的默认终端)

Git Bash will use MinTTY as terminal emulator, which sports a resizable windownon-rectangular selections and a Unicode font. Windows console programs(sucas interactive Python) must be launched via 'winpty to work in MinTTY. Git Bash will use MinTTY as terminal emulator, which sports a resizable windownon-rectangular selections and a Unicode font. Windows console programs(sucas interactive Python) must be launched via 'winpty to work in MinTTY.

Git Bash 将使用 MinTTY 作为终端仿真器,该仿真器具有可调整大小的窗口非矩形选择和 Unicode 字体。 Windows 控制台程序(例如交互式 Python)必须通过 "winpty" 启动才能在 MinTTY 中运行。

  • use windows' default console window 使用windows的默认控制台窗口

Git will use the default console window of Windows ("cmd.exe"), which works vwith Win32 console programs such as interactive Python or node.js, but has avery limited default scroll-back, needs to be configured to use a Unicode font inorder to display non-ASCII characters correctly, and prior to Windows 10 itswindow was not freely resizable and it only allowed rectangular text selections.

Git 将使用 Windows 的默认控制台窗口("cmd.exe"),该窗口可与 Win32 控制台程序(例如交互式Python 或 node.js)一起使用,但默认回滚非常有限,需要将其配置为使用 Unicode 字体才能正确显示非 ASCII 字符,并且在 Windows 10 之前,其窗口不可随意调整大小,并且仅允许选择矩形文本。

建议选择第一种,MinTTY 3功能比 cmd 多,cmd 只不过 比 MinTTY 更适合处理 Windows 的一些接口问题,这个对 Git 用处不大,除此之外 Windows 的默认控制台窗口('cmd’)有很多劣势,比如 cmd 具有非常有限的默认历史记录回滚堆栈和糟糕的字体编码等等。 相比之下,MinTTY 具有可调整大小的窗口和其他有用的可配置选项,可以通过右键单击的工具栏来打开它们 git-bash 。点击next到第十三步。

4.1.13选择默认的 “git pull” 行为

img-LpskX0zv-1643168463065

翻译

Choose the default behavior of git pull 选择git拉出的默认行为。

what should git pull do by default? 默认情况下,“git pull”应该做什么?

  • DefaulIt fasiforward .ormerge)

默认(快进或合并)

This is the standard behavior of git pull : fast-forward the current branch tothe fetched branch when possible, otherwise create a merge commit. 这是 "git pull" 的标准行为:在可能的情况下将 当前分支 快进到 获取的分支,否则创建合并提交。

  • Rebase 重基

Rebase the current branch onto the fetched branch. f there are no localcommits to rebase, this is equivalent to a fast-forward. 将当前分支重新定位到获取的分支上。不存在要重基的本地提交,这相当于快速转发.

  • only ever fast-forward

只有永远快进

Fast-forward to the fetched branch. Fail if that is not possible. 快进到抓取的树枝上。如果这是不可能的,那就失败。

Q:“git pull” 是什么意思呢? A:git pull 就是获取最新的远程仓库分支到本地,并与本地分支合并

上面给了三个 “git pull” 的行为: 第一个是 merge 第二个是 rebase 第三个是 直接获取

第一种 git pull = git fetch + git merge 第二种 git pull = git fetch + git rebase 第三种 git pull = git fetch

一般默认选择第一项,git rebase 绝大部分程序员都用不好或者不懂,而且风险很大,但是很多会用的人也很推崇,但是用不好就是灾难。

git pull 只是拉取远程分支并与本地分支合并,而 git fetch 只是拉取远程分支,怎么合并,选择 merge 还是 rebase ,可以再做选择。

更多参考资料:

  1. 知乎 - git pull 和 git fetch 的区别?
  2. 知乎 - 在开发过程中使用 git rebase 还是 git merge,优缺点分别是什么?
  3. Stackoverflow - Why does git perform fast-forward merges by default?
  4. Stackoverflow - In git how is fetch different than pull and how is merge different than rebase?
  5. Stackoverflow - Difference between git pull and git pull --rebase

4.1.14选择一个凭证帮助程序

点击next

image-20220117151108306

翻译

Choose a credential helper 选择凭据助手

which credential helper should be configured? 应该配置哪个凭据助手?

  • Git Credential Manager Git 凭证管理

Use the cross-platform Git Credential Manager. 使用跨平台Git凭据管理器。

See more information about the future of Git Credential Manager here. 请参阅有关Git凭证经理未来的更多信息。

  • None 无

Do not use a credential helper. 不要使用凭据助手。

一共两个选项: Git 凭证管理 不使用凭证助手

第一个选项是提供登录凭证帮助的,Git 有时需要用户的凭据才能执行操作;例如,可能需要输入用户名和密码才能通过 HTTP 访问远程存储库(GitHub,GItLab 等等)。

Windows 的 Git 凭据管理器(Git Credential Manager)是在 Windows 上运行的基于 .NET Framework 的 Git 凭据帮助器。同样,适用于 Mac 和 Linux 的 Git 凭据管理器(Java GCM)是基于 Java 的 Git 凭据帮助器,仅可在 macOS 和 Linux 上运行。尽管这两个项目都旨在解决相同的问题(使用 Git 提供无缝的多因素 HTTPS 身份验证),但它们基于不同的代码库和语言,因此难以确保特性对等。 Git Credential Manager Core(GCM Core)旨在用统一的代码库替换 GCM Windows 和 Java GCM,这在将来应该更容易维护和增强。 登录图如下(属于第一个选项的)

在这里插入图片描述

点击Next到十五步。

4.1.15配置额外的选项

点击Next

img-965XD3Ir-1643168463067

翻译

Configuring extra options 配置额外选项

which features would you like to enable? 您希望启用哪些功能?

  • Enable file Svstem caching 启用文件缓存系统

File system data will be read in bulk and cached in memory for certainoperations ("core.fscache" is set to "true").This provides a significantperformance boost. 文件系统数据将大容量读取,并缓存在内存中以进行确定操作(“core.fscache”设置为“true”),这将大大提高性能。

  • Enable symbolic links 启用符号链接

Enable symbolic links (requires the SeCreateSymbolicLink permission).Please note that existing repositories are unaffected by this setting. 启用符号链接(需要SeCreateSymbolicLink权限)。请注意,现有的存储库不受此设置的影响。

有两个选项: 启用文件系统缓存 启用符号链接

==启用文件系统缓存==就是将批量读取文件系统数据并将其缓存在内存中以进行某些操作,可以显著提升性能。这个选项默认开启。 ==启用符号链接== ,符号链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用,类似于 Windows 的快捷方式,不完全等同 类Unix(如 Linux) 下的 符号链接。因为该功能的支持需要一些条件,所以默认不开启。

更多关于 “符号链接” 参考资料:

  1. 知乎 - git pull 和 git fetch 的区别?
  2. 知乎 - 在开发过程中使用 git rebase 还是 git merge,优缺点分别是什么?
  3. Stackoverflow - Why does git perform fast-forward merges by default?
  4. Stackoverflow - In git how is fetch different than pull and how is merge different than rebase?
  5. Stackoverflow - Difference between git pull and git pull --rebase

4.1.16配置实验性选项

点击Next

img-P7sC0cHl-1643168463067

翻译

Configuring experimental options 配置实验选项

These features are developed actively. Would you like to try them? 这些特征得到了积极的发展。你想试试吗?

  • Enable experimental support for pseudo consoles. 启用对伪控制台的实验支持。

(NEW!)This allows running native console programs like Node or Python in aGit Bash window without using winpty, but it still has known bugs. (新的!)这允许在agitBash窗口中运行本地控制台程序,如Node或Python,而无需使用winpty,但它仍然存在已知的bug。

  • Enable experimental built-in file system monitor 启用试验性内置文件系统监视器。

(NEW!)Automatically run a built-in file system watcher, to speed up commonoperations such asgit status, ' git add', 'git commit', etc in worktreescontaining many files. (新!)自动运行内置的文件系统监视程序,以加快包含多个文件的工作树中的公共操作,如“git status”、“git add”、“git COMMIT”等。

这是实验性功能,可能会有一些小错误之类的,建议不用开启。

点击install进行安装。

安装成功!

开始菜单会多出这三个以及鼠标右击

img-CvpE4ihN-1643168741749

Git Bash: Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD: Windows风格的命令行

Git GUI: 图形界面的Git,可以通过它快速创建新仓库(项目),克隆存在的仓库(项目),打开存在的仓库(仓库),不建议初学者使用,尽量先熟悉常用命令

之后来启动测试一下

在如何一个位置右击选择Git Bash Here。输入ls,输出当前文件夹内所有文件名称

image-20220117160408507

4.2卸载

4.2.1清除环境变量

在这里插入图片描述

4.2.2使用控制面板或自己的软件管家之类卸载

img-HqdGjYHV-1643168721347

4.3风格样式修改

4.3.1修改language

右击选择opinion

image-20220117170352885

Windows→UI language→zh_CN

img-tqgVfVQc-164316846307

在外观中可以修改Git Bash的窗口样式

image-20220117170521315

五、Git配置

5.1设置用户名与邮箱(用户标识,必要)

当你安装Git后首先要做的事情是设置你的用户名称e-mail地址。因为每次Git提交都会使用该信息。如果不配置,不能正常提交,会警告先配置后提交。

git config --global user.name GC-ZF  #名称
git config --global user.email 1310446718@qq.com   #邮箱

这里只需要做一次这个设置,因为传递了--global 选项,Git将总是会使用该信息来处理在系统中所做的一切操作。如果希望在一个特定的项目中使用不同的名称或e-mail地址,可以在该项目中运行git config --local user.name,git config --local user.email

打个比方,如果要区分Github和Gitee的用户提交信息 ([第十一点会实际应用](# 十一、同时配置Gitee、Github公钥)),可以把常用的一个设置为全局变量。单独为另一个账号的仓库设置用户信息,这样就不用频繁地做这步。git 的配置分为三级别,System —> Global —>LocalSystem 即系统级别,Global 为配置的全局,Local 为仓库级别,优先级是 Local > Global > System

上面这些有点不好懂,举个例子。设置好以后,在本地仓库完成了一次提交(没有push远程),使用git log 可以查看历史提交记录。这里会显示这条历史的作者和邮箱,push到远程以后,其他人也可以看到这些修改记录

img-qEWf8emT-1643169653115

5.2配置文件

所有的配置文件都保存在本地

  1. 查看配置 git config -l

image-20220117171312273

  1. 查看系统配置git config --system --list

图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFdfV7Ve-1643168463073

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

=图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ITQUUICH-1643168463074

2、3命令的本质其实就是输出配置文件内容

Git相关的配置文件:

  1. Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级

  2. C:\Users\用户名8\ .gitconfig 只适用于当前登录用户的配置 --global 全局

下一期先放一部分常用的指令