git基础命令


基础命令

$ git init                 # 初始化,会生成一个.git的文件夹(默认隐藏),包含了版本控制的所有内容
$ git add [filename]       # 添加被管理控制的文件,.代表所有
$ git status               # 查看状态
$ git commit -m “备注信息” 尽量多详细  
$ git log                  # 查看所有历史版本
$ git reset --hard XXXX    # 回滚到版本号的版本

$ git config --global user.email 'XXXXXXXX@163.com'	   # 邮箱用户配置
$ git config --global user.name 'XXXXXXX'
$ git config --global user.email	                   # 查看全局邮箱配置
$ git config --global user.name

$ git branch          # 查看分支,*号代表当前分支
$ git branch dev      # 创建分支
$ git checkout dev    # 切换分支
$ git merge dev       # 合并分支,若分支冲突需要手动解决
$ git branch -d dev   # 删除分支,不能删除自己所在的分支
 
$ git clone https://github.com/nice-creator/cstudy.git   # 下载远程仓库的项目
$ git remote -v                                          # 查看远程仓库地址
$ git push -u origin master                              # 向远程推送代码
$ git pull                                               # 从远程仓库更新代码到本地

通过ssh密钥免密push

$ ssh-keygen                              # 本地生成密钥对
$ cat /c/Users/lidawei/.ssh/id_rsa.pub    # 本地保留私钥,查看公钥将公钥复制到github

github分支合并

github上可以直接创建分支,也可以在本地创建好分支,之后提交(git push -u origin dev) 到github的分支

合并分支可以在本地合并到master分支,也可以通过github页面的Pull request合并分支

github多人协作

多人协作需要协作人Fork一份原作者的代码到自己的仓库,然后从仓库下载代码到本地做修改,做好修改之后推送代码到自己的仓库,从github上向作者发起合并代码的请求(pull request)。原作者同意合并代码合并成功

gitlab安装

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm  
rpm -ivh gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm

vi /etc/gitlab/gitlab.rb
external_url 'http://10.1.1.12'    # 修改成gitlab服务器的IP地址,对外服务

# 初始化,时间较长,会自动帮助配置各个组件,并启动
gitlab-ctl reconfigure

代码更新方法

蓝绿部署,是一种可以保证系统在不间断提供服务的情况下上线代码的部署方式。
蓝绿部署的模型中包含两个集群,在正常情况下(没有上线操作),集群A和集群B的代码版本是一致的,并且同时对外提供服务。在有项目代码上线的时候,我们首先把一个集群(比如集群A)从负载列表中摘除,进行新版本的部署。集群B仍然继续提供服务。当集群A升级完毕,我们把负载均衡重新指向集群A,再把集群B从负载列表中摘除,进行新版本的部署。集群A重新提供服务。最后,当集群B也升级完成,我们把集群B也恢复到负载列表当中。这个时候,两个集群的版本都已经升级,并且对外的服务几乎没有间断过。

滚动更新,同样是一种可以保证系统在不间断提供服务的情况下上线代码的部署方式。 滚动部署只需要一个集群,集群下的不同节点可以独立进行版本升级。

灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式

AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。