basic
生成公钥
1 | ssh-keygen -t ed25519 -C "<your email>" |
配置全局信息
1 | git config --global user.name "sunzhenkai" |
多公钥
适用
- 一台机器,同一Git仓库,多账号
- 一台机器,多Git仓库,多账号
1 | 生成公钥 |
stash
用于暂存代码。
1 | 暂存 |
submodule
1 | 添加子模块 |
清理
1 | rm -rf path/to/submodule |
tags
1 | git tag -s "tag_name" -m "comments" |
删除大文件
1 | git filter-branch -f --prune-empty --index-filter "git rm -rf --cached --ignore-unmatch recommend/keywords.txt" --tag-name-filter cat -- --all |
修改 commit 用户名
1 | 设置用户名、邮箱 |
参考这里。
查看某一行修改人
1 | git blame <file> -L <start-line>,<end-line> |
branch
1 | 删除分支 |
Git Tree
1 | 检出 /path/pattern 下文件在 tree-ish 下的状态 |
检出并保存在其他路径
1 | git archive f9ee8bb31f04f4e6a8c0d3e96fbb98deeb448d45 | tar -x -C /tmp/f9ee8bb31f04f4e6a8c0d3e96fbb98deeb448d45 |
从 remote 检出
1 | git archive --remote=https://github.com/user/repo.git <tree-ish> | tar -x -C /path/to/target-dir |
配置
1 | 打印配置 |
作用域
1 | 默认仓库级别 |
配置项
1 | git config user.name '...' |
代理
1 | 设置 |
最佳实践
分支名称
分支分类
- 主分支,main / master
- 开发分支,dev
- 功能分支,feature / feat
- 修复分支,bugfix / fix
- 发布分支,release
- 紧急修复分支,hotfix
- 测试分支,test
- 文档分支,doc
命名示例
1 | feature/JIRA-1929-support-oneid |
问题排查
中文乱码
1 | git config --global core.quotepath false # 显示 status 编码 |
git-remote-http libcurl-httpd24.so.4 不存在
错误信息
1 | /opt/rh/rh-git218/root/usr/libexec/git-core/git-remote-http: error while loading shared libraries: libcurl-httpd24.so.4: cannot open shared object file: No such file or directory |
解决
1 | find / -name 'libcurl-httpd24.so.4' |