本片博客将介绍一些不成系统的零碎知识点,后续根据体量选择部分写成新的博客

GO flags

  1. GOPROXY:Go 拉取依赖的代理服务地址,默认值是:https://proxy.golang.org,direct,一般来说不挂梯子访问不了,所以会进行修改。配置GOPROXY能直接从代理拉取包而不走git直连从而能绕开 Git 认证
  2. GOPRIVATE:表明哪些模块是「私有的」,不要走公共代理和校验服务,既绕过GOPROXY和GOSUMDB,直接进行git 直连但会触发git验证。譬如go env -w GOPRIVATE=git.dev.xxx.com/*
  3. GOINSECURE:允许对某些模块使用不安全的连接(HTTP 或自签证书)而跳过tls认证
  4. GOSUMDB:Go 的模块校验数据库,用来验证下载的依赖是否被篡改,默认是 sum.golang.org(国外的)。国内常换成镜像:sum.golang.google.cn

git rebase

在和别人合作过程中总会遇到自己在分支上写了很多代码而别人在相关部分也写了代码并比你提前和入了master,如果你当前分支上有很多提交,直接 git rebase origin/master会在每次commit有冲突的时候都会手动rebase一次,一个简单的方法是将所有commit合成一个commit并再次rebase,虽然这样会导致commit历史被修改,但会简单很多。

1
2
3
4
BASE=$(git merge-base HEAD origin/master) #找到远端master和当前分支的共同祖先
git reset --soft $BASE #将当前commit都合成一个commit并放在暂存区
git commit -m "squash local changes"
git rebase origin/master #开始手动reabse