git版本控制系统以及项目部署方法

Posted CCTVZHENG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git版本控制系统以及项目部署方法相关的知识,希望对你有一定的参考价值。

 git只适合开源的软件,安全性 不行

 svn集中式版本控制系统必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,呵呵。分布式版本控制系统可以不连网工作,因为版本库就在你自己的电脑上。·集中式版本控制系统如果中央服务器挂了,就完蛋了。分布式版本控制系统可以没有中央服务器,每个人的电脑上都是一个完整的版本库,可靠性高。分布式版本控制系统也可以有一台充当“中央服务器""的电脑,但这个服务器的作用仅仅是用来方便交换"大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

一、安装git

官网: https://git-scm.com/
才10M

 1.1、git身份设置

 1.2、创建本地工作目录

 

 

 1.3、添加文件到暂存区

 提交文件之前可以git  status  会显示暂存区的文件

 clean的意思不是工作区没有文件是三大区都一致,也就是工作流一致

 修改再提交第二个版本

也可以touch 增加新的文件  

 git add  三次或者  git add *  把文件放入暂存区  再git commit  -m  "说明"  提交事务

 至少进行三次存档 还差一次

查看git日志

 

 

 拷贝rpm包放入暂存区再提交事务

 如果觉得rpm包混乱 可以回退

 回退操作在三大区都可以实现 

 回退其实就是同步到暂存区,撤销之前的操作

 分支就是git clong  克隆主仓库  然后把分支代码整合到主仓库

 远程git仓库

 

 

git仓库上传和下载

在命令行创建远程git仓库

其实就是push上传到远程git仓库

github里面照着写就行 

新建README.md就行   作用是软件的安装方法 测试的时候就可以不用写方法

这是上传项目到远程git仓库

 下载或者克隆项目到本地

 用户就只能克隆到命令行

 克隆之后git仓库已经存在,只能cd到git仓库pull下载了

 

无论是自己操作自己的仓库还是别人操作,都必须cd到仓库目录

免密push


免密push其实就是利用了ssh免密登录的原理:

1.在本地产生空密码密钥对
2.本地保留私钥,把公钥给对方

3.实现本地到远程的免密

生成密钥对就只需要 ssh-keygen

然后回车两次就行

 公钥的内容必须全复制

 

 设置ssh免密之后就能实现免密push上传code到远程仓库

 git push -u origin master

github分支

 

 切换到dev分支之后,分支如果发生改变,只能上传到远程仓库的dev分支,最后由仓库的master决定是否更新合并分支需求到master

 

 箭头方向就是dev合并到master

 最后确认合并branch分支master

 

github多人协同开发

场景:李四看张三的项目不错想帮忙开发,但是为了安全考虑不可能得到别人的账号密钥啊

最好的办法就是李四fork张三的项目到自己的仓库,先搜索张三的项目,再点击fork

 

李四必须克隆自己的仓库到本地,要不然无法上传到自己的仓库

 

 更新到张三的仓库需要李四申请new pull request

 

gitlab安装

 

直接rpm -ivh安装就行,没有依赖

 

 

感谢您安装GitLab !

GitLab无法检测到实例的有效主机名。

请通过在/etc/ GitLab / GitLab中设置'external_url'配置为你的GitLab实例配置一个URL。rb文件。

然后,“您可以通过运行以下命令来启动您的GitLab实例

command:

Sudo gitlab-ctl reconfigure

有关配置选项的全面列表,请参阅0mnibus GitLab readmehttps://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

sudo是针对普通用户的,root用户直接运行就行

 vim  /etc/gitlab/gitlab.rb  修改位内网ip,也就是 自己本地ip,方便对内开放

 如果不恢复快照安装,可能会有坑,gitlab里面的软件本来就很多

gitlab的下载克隆和GitHub差不多,可以设置ssh免密登录

 持续集成CI

 

 每天把项目代码都集成到代码仓库然后通过CI server 自动构建测试 结果反推

 

 

 持续交付CD

项目上线之前必须放在测试环境测试 成功  保证环境的一致性,开发和 运行环境一致

包括软件版本  容器就具有这个优势,可以减少排错时间,直接重新装环境

 

项目发布方法

1、蓝绿部署 

传统的发布都是需要停服务的,蓝绿部署就不用。缺点是费钱,国企一般不用。

蓝绿部署可以让一台服务器提供服务,另外一台服务器完成发布升级

 滚动更新适合容器实现

灰度发布(A/B测试 \\金丝雀部署)

主要考虑的是用户体验,例如王者荣耀的体验服模式

 

 

 

Windows上的gitgithub部署及基本使用方法

  1、介绍

    Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

 

  Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    下载:https://gitforwindows.org/

 

  2、Git 与 SVN 区别

    GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

    如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

    Git 与 SVN 区别点:

    1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

    2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

    3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

    4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

    5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

  

  3git设置

  下载安装,配置环境变量,D:Program FilesGitmingw64in;D:Program FilesGitmingw64libexecgit-core设置到path

    设置姓名和邮箱

    1、 git config --global user.name "your name"

    2.、git config --global user.email "[email protected]"

 

    提高命令输出的可读性

    git config --global color.ui auto

 

    1、创建本地代码仓库

    在本地,新建一个空文件夹(随便哪个盘都可以),比如我在E:新建了new_git文件夹。

    进入new_git文件夹,右键运行“Git Bush Here”

    技术分享图片

    打开git命令框后

    2、git init 初始化

    技术分享图片

    这样在new_git文件夹下生成一个.git文件夹

    

    3、将自己的项目复制到新建的仓库new_git里面

    技术分享图片

    

    可通过git status命令查看当前状态
    技术分享图片
    
注意:虽然项目已经复制过来了,但还没有add到Git仓库上,我们可以通过git add .或git add将项目全部添加到仓库中。

    4、git add .
    (注意add和.之间有一个空格)添加文件 .的意思添加当前文件的所有文件
    技术分享图片  
    
    添加后用git status查看,发现状态改变
    技术分享图片

 

     5、git commit

    用git commit把项目提交到仓库(git commit -m "XXXXX")-m后面是本次提交的注释,选填(最好写上)
    例如:git commit -m ‘初次提交微信服务python代码‘
    技术分享图片

 


 

 

  

  相关参考:http://www.runoob.com/git/git-tutorial.html

       https://segmentfault.com/a/1190000013909993?utm_source=tag-newest

 

以上是关于git版本控制系统以及项目部署方法的主要内容,如果未能解决你的问题,请参考以下文章

如何便携使用github

版本控制git与gitlab简单使用记录

PHP实现git部署的方法教程

PHP实现git部署的方法教程

git和github是啥?有啥作用?最用通俗的语言

版本控制系统Git介绍与部署