1 git
1.1 submodule
当 clone 一个含有子模块的 git 仓库时可以使用如下命令安装所有子模块
git submodule init
git submodule update
1.2 branch 管理
查看分支
git branch -a
创建分支
# 以当前分支为模板创建并切换分支
git checkout -b dev
# 以 master 为模板创建并切换分支, master 可以是哈希值或者 origin/master 这种远程地址
git checkout -b dev master
# 推送分支, 如远端不存在则自动创建
git checkout dev
git push origin dev
删除分支
# 本地删除
git checkout master
git branch -d dev
# 如果分支包含未合并的更改,使用 `-D` 强制删除
git branch -D dev
# 远端删除
git push origin --delete dev
# 或
git push origin :dev
2 git 配置
查看 git 设置
# 当前仓库
git config --list
# 全局配置
git config --global --list
2.1 设置代理
设置全局代理,使用 http 代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
取消 github.com 代理
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
设置全局代理,使用 socks5 代理
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080
取消全局代理
git config --global --unset http.proxy
git config --global --unset https.proxy
只对 github.com 使用代理
git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy http://127.0.0.1:7890
2.2 CRLF 和 LF
# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
# 提交检出均不转换
git config --global core.autocrlf false
# 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
# 允许提交包含混合换行符的文件
git config --global core.safecrlf false
# 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
3 常见问题
3.1 git clone 报错
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
解决
git config --global http.sslVerify "false"
git config --global core.compression -1
以上