Git的基本使用
文章目录
- 1、Git下载
- 2、查看配置
-
- 2.1 查看 所有配置(系统 + 全局 + 本地)
- 2.2、配置解析
- 2.3、 查看 系统级配置(对所有用户生效)
- 2.4、 查看 全局配置(对当前用户生效)
- 2.5、 查看 当前仓库配置(仅对当前项目生效)
- 2.6 生成SSH秘钥(可选)
- 3、Git工作流程
- 4、Git基本操作流程
1、Git下载
下载地址https://git-scm.com/downloads
查看版本git --version 配置名字和邮箱,修改也是一样的指令git config --global user.name “名字”git config --global user.email 邮箱
2、查看配置
2.1 查看 所有配置(系统 + 全局 + 本地)
git config --list
会列出所有生效的配置项(包括重复的键,后面的覆盖前面的)。
2.2、配置解析
1、diff.astextplain.textconv=astextplain
让 Git 在遇到 .docx、.pdf 等二进制文件时,先用 astextplain 把内容转成纯文本再做 diff,这样 git diff 能看到可读的变化。
2、 filter.lfs.clean / smudge / process / required
Git LFS(Large File Storage)相关钩子,是Git的一个开源扩展。告诉 Git 在提交(clean)、检出(smudge)或传输(process)时调用 Git-LFS 来处理大文件。
LFS核心原理:
不在 Git 仓库存储大文件本身,而是用一个轻量的文本指针代替。
实际的大文件内容被上传到一个独立的 LFS 远程服务器。
3、 http.sslbackend=openssl
使用 OpenSSL 作为 HTTPS 连接的 TLS 后端。
4、 http.sslcainfo=…/ca-bundle.crt
指定 Git 校验服务器证书时所用的 CA 证书包路径。
5、core.autocrlf=true
提交时把 Windows 的 CRLF 转成 LF,检出时再转回 CRLF,方便跨平台协作。
\\n
0x0A
\\r\\n
0x0D 0x0A
6、core.fscache=true
Windows 专用:启用文件系统缓存,加速 git status 等操作。
7、 core.symlinks=false
关闭对符号链接的支持(Windows 默认)。
8、 pull.rebase=false
git pull 时默认使用 merge,而不是 rebase。
9、 credential.helper=manager
使用 Git Credential Manager(GCM)来存储/读取 HTTPS 凭据。
10、 credential.https://dev.azure.com.usehttppath=true
针对 Azure DevOps 的额外规则:GCM 在查找凭据时把完整路径也作为区分维度(默认只按 host 区分)。
11、 init.defaultbranch=master
git init 时默认创建的分支名是 master。
12、 user.name / user.email
全局提交身份标识。
13、 credential.https://gitee.com.provider=generic
告诉 GCM:访问 gitee.com 时使用“generic”协议(而不是微软的 AAD/OAuth 等)。
2.3、 查看 系统级配置(对所有用户生效)
git config --list --system
文件路径:Linux/macOS 通常是 /etc/gitconfig,Windows 是 Git 安装目录下的 etc/gitconfig。
2.4、 查看 全局配置(对当前用户生效)
git config --list --global
文件路径:~/.gitconfig(用户主目录)。
2.5、 查看 当前仓库配置(仅对当前项目生效)
git config --list --local
文件路径:项目根目录下的 .git/config。
2.6 生成SSH秘钥(可选)
如果你需要通过 SSH 进行 Git 操作,可以生成 SSH 密钥并添加到你的 Git 托管服务(如 GitHub、GitLab 等)上。
ssh-keygen -t rsa -b 4096 -C \"your.email@example.com\"
3、Git工作流程
如果想更改一次提交,使用git commit --amend
。git会使用与当前提交相同的父节点进行一次新提交,旧的提交会被取消。但是一旦它被别人 fetch、pull 或者 CI 拿去构建,你再 amend 重写历史,就会让所有人手上的历史失效