前言
git属于分布式版本管理系统,是为版本管理而设计的软件
Git结构
你的本地仓库有 Git 维护的三棵“树”组成,这是 Git 的核心框架。这三棵树分别是:工作区域、暂存区域和 Git 仓库
版本库:工作区有一个隐藏目录 .git,这个是 Git 的版本库。(从github down 下来的代码都有该文件夹)
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,事实上它只是一个文件,保存即将提交的文件列表信息。
当你使用git init时,会创建 .git 目录
1 | .git |
git config
git config的数据来源来自三个配置文件
- 本地(Local) .git/config 仅当前仓库 –local(默认)
- 全局(Global) ~/.gitconfig 当前用户所有仓库 –global
- 系统(System) /etc/gitconfig 系统所有用户 –system
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#配置
#例:用户信息配置,要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可
git config --global user.name "runoob"
git config --global user.email test@runoob.com
#查看配置信息
git config --list
#使用astextplain作为文本转换器
diff.astextplain.textconv=astextplain
#Git在HTTPS请求中使用的SSL后端和证书文件。
http.sslbackend=openssl
http.sslcainfo=D:/博客/Git/mingw64/ssl/certs/ca-bundle.crt
#配置Git使用的默认代码编辑器,--wait参数告诉编辑器在关闭之前不要退出终端进程
core.editor="C:\Users\DELL\AppData\Local\Programs\Microsoft VS Code\Code.exe" --wait
#与Git相关的用户名和电子邮件地址。
user.email=****@qq.com
user.name=mayylu
#以使用本地存储方式保存用户凭据。
credential.helper=store
git config user.name #查单个值
git实战
项目状态分为: 已修改(modified)、已暂存(staged)和已提交(committed)
例:
在.git同级目录(即工作区)新建1.txt,2.txt和12目录,现使用git add 1.txt 上传暂存区,
1 | git status #查看本地库状态 |
git创建仓库
1 | git init #初始化本地库 |
git 工作区和版本库的交互


1 | #工作区->暂存区 |
回溯
1 | git log #查看commit历史记录 |
git 分支
master分支(Git 2.28 版本后,Git 将默认分支名称更改为“main”)是Git默认创建的分支,因此基本上所有开发都是以这个分支为中心进行的。
分支可以管理版本,也可以进行多个功能的开发
1 | git branch #查看分支 |
在 Git 中,分支信息保存在特殊的 Git 对象中,这些对象存储在您的本地 .git 目录中。每个分支都有一个指针(或引用),指向最新提交的 SHA-1 校验和。该指针通常保存在 .git/refs/heads/ 目录下与分支名称对应的文件中。
1 | git branch 分支名 #创建分支(创建时自动克隆当前分支) |
只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发
git 远程库
远程仓库顾名思义,是与我们本地仓库相对独立的另一个仓库,让我们可以在GitHub上创建一个仓库,并将其设置为本地仓库的远程仓库,本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,需要提前绑定ssh密钥
1 | git clone 远程地址 #把远程仓库clone到本地,当您克隆一个包含代码的远程仓库时,Git 会自动将该远程仓库命名为 origin |