Skip to content

Git Notes

🕒 Posted at: 2020-11-14 ( 4 years ago )
Git
关于 Git 的一些笔记

关于设置和用户信息

修改用户名和邮箱

bash
git config --global user.name yourname

git config --global user.email your@email.com

查看配置信息

bash
git config --list

关于仓库

修改Git远程地址仓库

bash
# 查看远程仓库地址
git remote -v

# 移除远程仓库地址
git remote rm origin

# 添加新的远程仓库地址
git remote add origin (ssh or https 仓库地址)

克隆远程仓库

bash
git clone (ssh or https 仓库地址)

关于提交

压缩提交信息

bash
git rebase -i HEAD~(n-1) # n 为需要压缩的提交次数

# 在编辑器中,将除第一个提交(父提交)外的每个提交都改成"s"或者"squash",然后保存关闭编辑器。

git rebase --abort # 若结果不符合预期,还可以通过git rebase --abort取消rebase操作。

快捷替换

bash
# 将所有的 pick 替换为 s
:%s/pick/s/g

# 清空提交信息
:%d

提交规范

Commit Message 格式

TypeDescription
featIntroduce a new feature to the codebase
fixFix a bug in the codebase
docsCreate/update documentation
styleFeature and updates related to styling
refactorRefactor a specific section of the codebase
testAdd or update code related to testing
choreRegular code maintenance
perfCodebase is optimized
ciContinuous integration related
buildUpdate build scripts and packages
tempTemporary commit that won't be in the final codebase
readmeUpdate README.md
gitUpdate .gitignore or .gitattributes
configUpdate configuration files
revertRevert to a previous commit

其他常见问题

LF 和 CRLF 问题

当 Git 处理 package.json 文件时,会将换行符从 LF (Line Feed, 用于 Unix 系统) 替换为 CRLF (Carriage Return + Line Feed, 用于 Windows 系统)。

windows

bash
git config --global core.autocrlf true

这将告诉 Git 在检出代码库时将 LF 转换为 CRLF,在提交时将 CRLF 转换回 LF

mac 和 linux

bash
git config --global core.autocrlf input

这将告诉 Git 仅在提交时将 CRLF 转换为 LF

.gitattributes 文件

bash
echo "* text=auto eol=lf" > .gitattributes
Copyright © RyChen 2024