当前位置:网站首页 > 云计算与后端部署 > 正文

服务器部署gitlab(服务器部署git)



1. 项目克隆

 
  

2. 项目的提交

注:如果要查看文件的状态可以用git status命令:

如上图所示,文件已经修改了。

3. 项目的推送

 
  

注:如果要查看远程的项目源地址可以如下命令:
git remote -v

4. 分支和gitflow流

  • master分支

master分支是最终版本的分支,是正式发布使用的,是受保护的分支,在master分支上不能随意修改


  • develop分支

develop分支从master分支拉取出来,作为功能分支的集成分支,这样也方便master分支上的所有提交分配一个版本号;如图所示:
develop.jpg

 
   
  • feature分支

feature分支也叫功能分支,就是对一个项目组按人员划分来建立分支比如张三,就是feature/feature-zhangsan,李四,就是feature/feature-lisi。功能分支不是从master中去fork分支(切记),而是将develop分支作为父分支。当功能开发完成后合并回develop分支。
这样子做的目的是每个人开发都相对独立,相互不受影响。其结构图所示:
feature.jpg

 
    
  • release分支

到了发布的时候,专门为发布准备了一个分支就是release分支,它从develop中fork出来,这么做的目的是一个团队可以在完善当前的发布版本的同时,另一个团队可以继续开发下一个版本。
并且这个版本只做上线前的bug修复用(即测试测出来的bug修改),不能新增功能,一旦合并到master分支后,也同时要将所做的修改合并到develop分支中去。其结构图所示:
release.jpg

 
     
  • hotfix分支

hotfix分支也叫维护分支或者热修复分支,用于快速给生产线上的产品打补丁用(比如客户在生产线上发现了紧急bug需要马上修复),这是唯一从master分支中去fork出来的分支,修复完成后,将修改的要合并到develop分支,master分支应该用新的版本号打好tag。

这样做的目的是,让团队快速解决掉问题,而不用打断其他工作或等待下一个发布。可以理解成在master分支上处理的临时发布。结构图如图所示:
hotfix.jpg

 
      

注:在切换到某个分支的时候,必须需要对这个分支做一个拉取,以免出现冲突

 
      

5. 项目还原到历史版本

如果我们开发时候,发现错了想还原到具体某一个版本,git也很方便。

  • 先通过查找日志查找版本号
 
      

15216088757735.jpg每次,修改提交都有一个记录编号

  • 还原到某个版本
    可以从日志中找到某个日志编号进行还原,比我我要还原成2月份的一个版本

git查看版本树

 
      
 
      

注:如果还原到上一个版本或者上上个版本

 
      

6.合并之rebase和merge

  • rebase
 
      

rebase操作时,是从两个分支共同的commit节点开始,将当前的分支develop的commit都提取出
来,追加到分支A上,有冲突就解决冲突,合并完成后会将develop原来提交的commit记录号删除掉,在最后重新生成新的commit记录号,
所以rebase不会产生多个commit,可以节省资源,但同时比较坑的是,如果多次commit有冲突,需要解决多次冲突

  • merge
 
      

merge操作时,两个分支共同的节点号,以及他们最新提交的节点,一起合并生成一个最新的节点。冲突只要解决一次就行,但同时也会产生多个commit。从公司多人协作项目考虑,建议用merge.

  • 总结
    我们在使用合并代码时,默认是使用fast-forword模式,这种模式不会保存commit记录,在合并和删除分支时会将分支信息删除掉。
 
      
 
      

在使用git pull时其实是拉取远程文件 和 合并的一个组合

 
      

7. 冲突解决

比如有文件2.txt初始内容如下:

 
      

现在有两个分支masert,develop都不小心修改了同样的内容:
develop:

 
      

master:

 
      

这个时候,在master分支下,将develop合并进去

 
      

提示在合并2.txt文件时发生冲突如图所示:
在这里插入图片描述
<<<<< HEAD 和 ===== 之间的表示当前分支下所修改的内容,
=======和 >>>>> develop之间的表示develop分支的内容。


接下来就来解决冲突,选择其中一行的内容,也可以两行都保留,很简单只需要<<<<<HEAD,======,>>>>>>> develop去掉,在这个例子以develop分支修改的为主,然后再提交。

 
      
 
      

gitlab master分支第一次push代码的时候只有主程序员才能推送,其他角色推送不了会报错

1.gitlab项目新建

  • 1.1 进项目首页
    在这里插入图片描述
  • 1.2 创建空白项目(比较常用)
    在这里插入图片描述
  • 1.3 通过模板来进行创建(选择了模板之后,会自动生成框架,直接使用就行)

  • 1.4 还可以通过从其他git源导入进来
    在这里插入图片描述

2.sshkey设置

  • 2.1 在本机生成sshkey,下面以mac下面为例进行演示,windows平台下的网上自己搜索。
 
      
  • 2.2 在gitlab平台添加sshkey

可以将id_rsa.pub文件内容复制出来,然后黏贴到gitlab平台
image.png


添加成功之后看如图所示:

  • 2.3 如果有多个git源仓库,怎么办?

如果有多个git源库,比如既有gitlab,又有github版本库的时候,那么SSHkey需要做区分,需要在~/.ssh目录中添加一个config文件,以及known_hosts文件,config文件主要是来管理git源,known_host是来管理私钥内容,内容如下:

 
      

参考:
https://segmentfault.com/a/94742
http://blog.csdn.net/baidu_/article/details/

3.代码上传

  • Git用户名和邮箱的配置

注:如果有多个git源,不能用 git config --global

 
      
  • 创建新版本库
 
      

设置gitignore

在.gitignore文件中例如可以把缓存,日志类的文件忽略掉把.DS_Store (mac下有,windows下没有),thumbs.db, data/logs, data/caches等



忽略文件权限的变更

 
      
  • 如果已存在的文件夹
 
      
  • 如果已存在的 Git 版本库
 
      
  • git利用nginx进行域名的反向代理
 
      
到此这篇服务器部署gitlab(服务器部署git)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
     
    
   
  
  

                            

版权声明


相关文章:

  • 服务器部署什么意思(服务器部署是谁的工作)2025-07-29 14:27:09
  • 手机软件后缀怎么改(手机软件的后缀)2025-07-29 14:27:09
  • redis修改密码和端口(redis设置用户密码)2025-07-29 14:27:09
  • pem文件和key文件(pem后缀文件)2025-07-29 14:27:09
  • u盘制作成系统盘后怎么还原文件(u盘制作成系统盘后还可以恢复吗?)2025-07-29 14:27:09
  • 虚拟usb软件(虚拟usb端口软件)2025-07-29 14:27:09
  • 苹果电脑装了双系统之后怎么切换(苹果电脑装了双系统之后怎么切换输入法)2025-07-29 14:27:09
  • 批处理删除指定后缀名文件(bat批量删除文件后缀)2025-07-29 14:27:09
  • 重绘你的生命底色读后感150字左右(重绘你的生命底色读后感150字左右)2025-07-29 14:27:09
  • 鸿蒙系统软件后缀(鸿蒙系统应用后缀)2025-07-29 14:27:09
  • 全屏图片