首页 > 其他分享 >gitlab以及分支管理

gitlab以及分支管理

时间:2024-07-27 11:54:42浏览次数:16  
标签:git 管理 gitlab feature master branch test 分支

一、分支概念

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止 到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。 HEAD 严格来说不是指向提交,而是指向master,而 master才是指向提交 的,所以,HEAD指向的就是当前分支。

开始的时候,master分支是一条线,Git 用 master 指向最新的提交,再用 HEAD指向 master,就能确定当前分支,以及当前分支的提交点。每次提 交,master分支都会向前移动一步,这样,随着你不断提交,master分支 的线也越来越长。

二、创建分支过程

1. 首先,确保你当前在主分支(通常是master或main分支)上工作。你 可以使用以下命令切换到主分支:

cd /test            # 先切换到之前创建master主分支

git checkout master      # 确保当前操作位置是在主分 支上

2. 接下来,使用以下命令创建一个新的分支:

git branch feature-branch

这将创建一个名为"feature-branch"的新分支。

3. 现在,你需要切换到新创建的分支上。使用以下命令切换分支:

git checkout feature-branch

git branch         # 查看当前分支

* feature-branch                 # 当前所在哪个分支,哪个分支前面有*号

  master

也可以使用如下命令直接创建并切换到"feature-branch"分支,-b 选项相当 于执行两条命令,git checkout 和 git branch。

git checkout -b feature-branch

git branch               # 跟上面的操作效果一样

* feature-branch

  master

这两个操作都将切换到新创建的"feature-branch"分支。

4. 在新分支上进行编写,提交更改。你可以使用以下命令添加更改并将更 改提交到本地仓库:

vim test.c        # 添加新内容

hello   test

git add .                   # 提交到缓存区,这里也可以写master分支的目录名,比如test

git commit -m "提交消息"                     # 提交消息写清注释 信息即可

5. 当代码任务完成后,需要将更改合并回主分支。首先,切换回主分支:

git checkout master

git branch

feature-branch

* master

cat test.c

# 刚才写入的内容没有了,是因为之前是在其他分支上操作的,并非在master 上 # 所以切换回master后,显示的内容只会是master分支上的内容

6. 然后,使用以下命令将你的分支合并到主分支:

git merge feature-branch

cat test.c                 # 合并完成,其他分支的内容被合并 到了master上

hello test

这将把你的"feature-branch"分支的更改合并到主分支上。如果存在冲突, 需要手动解决冲突。Git会在冲突的文件中标记出冲突的部分,你需要打开 这些文件并手动编辑以解决冲突。解决冲突后,你需要再次提交更改。

7. 最后,如果你想删除不再需要的分支,可以使用以下命令删除分支:

git branch -d feature-branch

这将删除名为"feature-branch"的分支。如果你想强制删除分支(即使该分 支尚未合并),可以使用以下命令:

git branch -D feature-branch

三、解决分支冲突

git checkout -b y123        # 创建并切换到新 分支

切换到一个新分支 'y123'

vim test.c                # 写入点内容

hello test yyyy

git add test.c                 # 将新分支写入的内容提交到 缓存

git commit -m "yy"                 # 提交新分支并注释 为“yy”

[y123 32e5a5a] yy

1 file changed, 1 insertion(+)

git checkout master                 # 切换到主分支 切换到分支 'master'

cat test.c                 # 此时还未合并,所以只显示当前 master分支的内容

hello test

vim test.c                 # 向master分支内写入些内容

hello test hhhh

git add test.c                 # 提交master分支

git commit -m "hh"                 # 正式提交,注释信息 为“hh”

[master 4a51362] hh

1 file changed, 1 insertion(+)

git merge y123                 # 合并新分支

自动合并

test.c 冲突(内容):合并冲突于 test.c                 # 提示冲突了

自动合并失败,修正冲突然后提交修正的结果。

git status                 # git状态信息也提示两个分支冲突 了

位于分支 master

您有尚未合并的路径。

(解决冲突并运行 "git commit")

(使用 "git merge --abort" 终止合并)

未合并的路径:

(使用 "git add ..." 标记解决方案)

双方修改: test.c

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

cat test.c                 # git使用记号帮我们标记除 了冲突位置和新分支的内容

hello test >>>>>> y123

vim test.c                 # 手动修改冲突文件

hello test hhhh yyyy

git add test.c                 # 提交修改后的分支

git commit -m "zuizhong"                 # 正式提交, 注释信息为“zuizhong”

[master f13e70e] zuizhong

git log --graph --pretty=oneline -- abbrev-commit                 # 查看日志分析分支合并情况

* f13e70e (HEAD -> master) zuizhong                 # 当前分支所处位 置为zuizhong

|\

| * 32e5a5a (y123) yy # y123分支冲突时所处的分支位置为yy

* | 4a51362 hh # master分支冲突时所处的分支位置为hh

|/

* 173a360 test

* 9e89cac add new file test.c

git branch -d y123 # 删除y123分支

已删除分支 y123(曾为 32e5a5a)。

cat test.c                 # 查看master分支上的最终版 本

hello test hhhh yyyy

四、Git 拉取

再启动一台主机,YH2

ssh-keygen

ssh-copy-id [email protected]

yum -y install git

mkdir /yh2                 # 新建git仓库

cd /yh2/

git init                 # 仓库初始化,当前目录作为 master

提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。 要在新仓库中

提示:配置使用初始分支名,并消除这条警告,请执行:

提示:

提示: git config --global init.defaultBranch

提示:

提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。

提示:可以通过以下命令重命名刚创建的分支:

提示:

提示: git branch -m <name>

已初始化空的 Git 仓库于 /yh2/.git/

git clone 192.168.33.11:/test/.git                         # 将YH1的test分支克隆到本机

克隆完成之后查看

ls    #底下有个test

test

ls test/

test.c

五、部署 Gitlab 服务器

1.搭建环境

准备我们刚刚刚使用的两台机子就好了

2、安装 gitlab

在第一个机器上:

yum -y install git                 # 安装git

3.去浏览器访问gitee官网并注册

注册完成之后,来到这个页面

去第一台主机

我们创建一个仓库目录

mkdir lnck

然后再进入

再进行初始化

git init

简单创个文件进行测试

发现这里查看不到

是因为没上缓存,上传,而且我们没有账号和邮箱

首先创建账号,邮箱

再上传提交

然后我们注册的gitee上面创建一个仓库

创建完成之后按照以下操作执行:

首先初始化

然后点击这里

先复制该路径

去我们的第一台机子上上传

在这里随便加一些内容

再复制下面命令再执行

再连接目标仓库

不选择会报错,像下面这样

然后连接仓库

后面的http 是下图中的

再合并上传到本地

再上传

这里输入我们gitee的用户名

再输入密码就可以上传了

网页上就能看到我们上传的内容了

标签:git,管理,gitlab,feature,master,branch,test,分支
From: https://blog.csdn.net/ln2915275834/article/details/140694952

相关文章

  • python+flask计算机毕业设计基于web的小区疫情防控信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球公共卫生事件的频发,特别是新冠疫情的持续影响,小区作为城市管理的基础单元,其疫情防控工作显得尤为重要。传统的小区管理方式在面对......
  • springboot机场投诉管理平台-计算机毕业设计源码22030
    摘要随着航空运输业的迅速发展,机场的客流量不断增加,旅客对机场服务的质量和效率也提出了更高的要求。为了提高机场的服务质量,及时处理旅客的投诉,建立一个高效、便捷的机场投诉管理平台显得尤为重要。本项目旨在设计与实现一个基于SpringBoot的机场投诉管理平台,以满足机场......
  • 驾校管理系统-计算机毕业设计源码49777
    摘 要驾校管理系统是一个基于SpringBoot框架开发的系统,旨在帮助驾校提高管理效率和服务水平。该系统主要实现了用户管理、年月类型管理、区域信息管理、驾校信息管理、车辆信息管理、报名信息管理、缴费信息管理、财务信息管理、教练分配管理、更换申请管理、考试预约管理......
  • 计算机毕业设计django+vue“伊牛”养牛场管理平台【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代农业的快速发展,养牛业作为畜牧业的重要组成部分,其管理效率和生产效益的提升日益受到重视。传统养牛场管理多采用人工记录、纸质档......
  • C语言day04(输入输出、垃圾字符、分支语句)
    C语言day04【1】按照字符输入输出1》输出:putchar定义格式:intputchar(intc);功能:按照字符输出,向终端输出一个字符参数:要输出的字符的ascii值、字符返回值:输出字符的ASCII值2》输入:getchar定义格式:intgetchar(void)功能:按照字符输入,从终端输入一个字符参数:无......
  • 【计算机毕设论文】基于SpringBoot成绩管理系统
    ......
  • Java计算机毕业设计考生订房管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着各类考试规模的不断扩大,考生对于考试期间的住宿需求日益增长,特别是在大型考试如高考、研究生入学考试等期间,考点周边的住宿资源尤为紧张。传统的......
  • 274java jsp SSM办公自动化管理系统员工档案员工考勤员工请假员工销假工作内容工作报
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 267java jsp SSM防疫信息登记系统风险地区管理(源码+文档+PPT+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • vite5-macos仿macOS网页osx管理系统|vue3+arcoDesign桌面os
    基于vite5.x+vue3+arco-design原创自研网页版os管理框架ViteWebOS。使用最新前端技术vite5+vue3+pinia2+arcoDesign+sortablejs+echarts搭建网页pc版桌面os式后台管理系统解决方案。支持自定义桌面栅格布局引擎、可拖拽桌面图标、多屏分页管理、自定义桌面壁纸主题、毛玻......