git-cheatsheet
git cheatsheet
Modified: 2024-01-04T11:32+08:00
Categories: Git
config
.git
文件夹下有个 config
文件,里面记载了仓库的地址、用户名和邮箱等信息。如果不希望全局配置对当前仓库生效,可以直接编辑 config
文件。
个人信息配置
Git 的 config 会作为 git commit
时的相关信息,但不会作为验证信息,这一点是很多新手的误区。能不能推送上去,只和 ssh、https 验证是否通过有关,和 username 及 email 无关。
也就是说,随便设置 username 和 email,再配置好 ssh,一样能推送上去。
那么为什么还要设置 username 和 email?原因是,在 GitHub 的个人主页上,所有使用非个人邮箱的推送是不会被“count”的。
在 GitHub 的 docs 上关于哪些 commit 会被计算进入主页,有这么一段话:
Commits will appear on your contributions graph if they meet all of the following conditions:
- The email address used for the commits is associated with your GitHub account.
- The commits were made in a standalone repository, not a fork.
- The commits were made:
- In the repository's default branch
- In the
gh-pages
branch (for repositories with project sites)
也就是说,小明的 GitHub 账号是"xiaomin@email.com",如果 git config 里把邮箱设置成"xiaohong@email.com",那推送是无法在个人主页显示的。
虽然这有一点“面子工程”的嫌疑,但是看到自己的主页绿油油的,心里还是会有一点开心?!
为所有 git 仓库设置邮箱和用户名的命令如下:
git config --global user.name "your global username" git config --global user.email "your global email"
如果你有多个 git 仓库,并且想要为它们设置不同的 username 和 email,需要在仓库的根目录下,使用以下命令进行配置:
git config user.name "your all repo username" git config user.email "your all repo email"
这个配置将会被写入到 .git/config
这个文件里。
关于查看配置的命令:
# 查看所有的配置 git config --list # 查看某个配置,显示的全局的配置 git config user.name git config user.email # 某个项目根目录下使用,显示的是 全局配置+当前项目的配置 git config --list
proxy
查看配置
git config --global --get http.proxy git config --global --get https.proxy
修改配置
# 如果本地的代理服务器用 http 协议,只需要设置这两条 # 如 clash 软件允许复制终端代理指令,查看可知本地 clash 使用的是 http git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890 # 如果本地代理服务器使用socks5协议,设置下面两条 git config --global http.proxy socks5://127.0.0.1:7890 git config --global https.proxy socks5://127.0.0.1:7890
取消配置
git config --global --unset http.proxy git config --global --unset https.proxy
参考:config a proxy to work with git
gitignore
常常会把不想添加的文件被 checked,所以有如下命令,清空 git 的 check
git rm -r --cached . git add . git commit -m 'update .gitignore'
commit
commit message
Git 如何规范填写 Commit Message_CSDN
<type>[optional scope]: <description> // 空行 [optional body] // 空行 [optional footer(s)]
type 填对最重要,如 fix, feat, test, refactor, perf, style, docs
类型 | 类别 | 说明 |
---|---|---|
feat | Production | 新增功能 |
fix | Production | bug 修复 |
perf | Production | 提高代码性能的变更 |
style | Development | 格式化代码 |
refactor | Production | 其他的代码变更,不属于 feat、fix、perf、style 例如代码简化、重命名变量、删除冗余代码 |
test | Development | 新增或修改测试用例 |
ci | Development | 持续集成和部署相关的变动 |
docs | Development | 文档类更新 |
chore | Development | 其他类型,比如构建流程、依赖管理或者辅助工具的变动 |
empty commit
记录一下 empty commit 的命令
git commit --allow-empty -m "commit message"
合并多个 commit
git log --oneline # 查看最近的git log git rebase -i <要合并的commit前一个的hash> # 将合并的 pick 改成 s # 重新填写 commit 信息
协同开发
本地创建切换分支
git checkout -b dev
现在位于 dev 分支下
推送到远程分支
git push -u origin dev
本地合并 dev 分支
先到把 dev 合并的分支,比如 main
git checkout main
然后 merge
git merge dev
删除本地和远程的 dev 分支
先删除本地分支
git branch -d dev
再删除远程分支
git push origin --delete dev
参考Git 合并分支
github 加速
Git 数据模型
版本控制(Git) · the missing semester of your cs education
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/15821784.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本