通过代理向Github推拉代码

前提:仅适用于基于SSH协议的remote

使用BSD流派的netcat(nc)转发

cat ~/.ssh/config
Host github.com 
    ProxyCommand nc -X 代理协议 -x 代理主机:代理端口 %h %p 

代理协议可选值:
4: SOCKS v4
5: SOCKS v5
connect: HTTP

如果nc没有-X等选项,可能安装的是经典流派版本,需要换成BSD版。

使用ncat转发

cat ~/.ssh/config
Host github.com
       ProxyCommand ncat --proxy-type 代理协议 --proxy 代理主机:代理端口 %h %p

代理协议可选值:
socks4
http

git忽略文件的集中途径

  • 配置core.excludesfile,该文件中记录了需要忽略的文件列表
  • ~/.config/git/ignore
  • repo库中的info/exclude
  • commit树中的.gitignore

更多详情可参考官方文档:
https://git-scm.com/docs/gitignore

git远程追踪分支的建立方法

本地分支不存在,创建追踪分支

git branch <localbranch> [--track] <remote>/<branch>

起点为远程分支时--track可省略。

本地分支不存在,创建追踪分支,同时切换到该分支

git checkout <branch> # 只有一个remote时,自动追踪remote同名分支

git checkout --track <remote>/<branch> # 使用远程分支名称作为本地分支名

git checkout -b <localbranch> [--track] <remote>/<branch> # 指定本地分支名称,起点为远程分支时--track可省略

本地分支已存在,建立或更新上游追踪

git branch -u <remote>/<branch> [<localbranch>]

省略localbranch时使用当前branch。

本地分支已存在,在推送的同时建立或更新追踪关系

git push -u <remote> <localbranch>:<remotebranch>

git push -u <remote> <branch>    #本地branch名称与远程相同

参考资料

https://segmentfault.com/a/1190000002783245