gitlab以及分支管理

一、分支概念

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

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

二、创建分支过程

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

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

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

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

git branch feature-branch

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

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

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"分支。

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

vim test.c # 添加新内容

hello test

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

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

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

git checkout master

git branch

feature-branch

* master

cat test.c

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

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

git merge feature-branch

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

hello test

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

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

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 \ 已初始化空的 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官网并注册 注册完成之后,来到这个页面 ![](https://i-blog.csdnimg.cn/direct/9a51a45b05ad45e08eb250bc747dad19.png) 去第一台主机 我们创建一个仓库目录 mkdir lnck 然后再进入 ![](https://i-blog.csdnimg.cn/direct/e883f2ed56c14e73ad07ccbdf3c0e083.png) 再进行初始化 git init 简单创个文件进行测试 ![](https://i-blog.csdnimg.cn/direct/6c3bf5a7e42444f6b37e3adbd63bc575.png) 发现这里查看不到 是因为没上缓存,上传,而且我们没有账号和邮箱 首先创建账号,邮箱 ![](https://i-blog.csdnimg.cn/direct/1f67492498d946168a60721607f074ea.png) 再上传提交 ![](https://i-blog.csdnimg.cn/direct/aa2184f285ec4dc1ac5812074a2edd22.png) 然后我们注册的gitee上面创建一个仓库 ![](https://i-blog.csdnimg.cn/direct/44e2303798ef49e396208893d267066f.png) ![](https://i-blog.csdnimg.cn/direct/3620d05bffa744ce81ae4cd18fe38500.png) 创建完成之后按照以下操作执行: 首先初始化 ![](https://i-blog.csdnimg.cn/direct/513be05c042040eba13f585ee63e8dc6.png) 然后点击这里 ![](https://i-blog.csdnimg.cn/direct/aec55b1b5b614017b07ec9b918091ab3.png) 先复制该路径 ![](https://i-blog.csdnimg.cn/direct/b0ee307a08014888b3f51af1a88c089a.png) 去我们的第一台机子上上传 ![](https://i-blog.csdnimg.cn/direct/c7281b0d2a5441359e6271587828fc9c.png) 在这里随便加一些内容 ![](https://i-blog.csdnimg.cn/direct/e4261adc59df439797a11727507d5de7.png) 再复制下面命令再执行 ![](https://i-blog.csdnimg.cn/direct/045e3c745d0b4b94b8c31d0379a8fdc9.png) 再连接目标仓库 不选择会报错,像下面这样 ![](https://i-blog.csdnimg.cn/direct/6521935195c44bbfb4afae979a90c23f.png) 然后连接仓库 ![](https://i-blog.csdnimg.cn/direct/9c1a4720ebe748d2b96dd0fc6e8c9ccd.png) 后面的http 是下图中的 ![](https://i-blog.csdnimg.cn/direct/a0edf88ad38e4fdbadbf45ad30c0f7ba.png) 再合并上传到本地 ![](https://i-blog.csdnimg.cn/direct/a0d091891c5f4f40be3d92ce63345e87.png) 再上传 ![](https://i-blog.csdnimg.cn/direct/bde68af3a6744a3d8604cd53eaa4bc2d.png) 这里输入我们gitee的用户名 再输入密码就可以上传了 ![](https://i-blog.csdnimg.cn/direct/2551684e4e17442dbe2e2a497954300e.png) 网页上就能看到我们上传的内容了 ![](https://i-blog.csdnimg.cn/direct/e88c470343c14737a2cd42e84f937919.png)

相关推荐
程序员阿超的博客5 小时前
云原生核心技术 (12/12): 终章:使用 GitLab CI 将应用自动部署到 K8s (保姆级教程)
ci/cd·云原生·gitlab
Linux运维技术栈8 小时前
GitLab 拉取变慢的原因及排查方法
运维·gitlab
二个半engineer12 小时前
GitLab Web 界面创建分支后pathspec ... did not match any file(s)
git·gitlab
尽兴-13 小时前
Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)
大数据·git·gitee·gitlab
Thinbug2 天前
群晖Nas - Docker(ContainerManager)上安装GitLab
docker·容器·gitlab
最美dee时光2 天前
gitlab-runner 如何配置使用 Overwrite generated pod specifications
gitlab
今夕节度使2 天前
通过 VS Code 连接 GitLab 并上传项目
git·elasticsearch·gitlab
leblancAndSherry3 天前
Gitlab + Jenkins 实现 CICD
linux·运维·docker·kubernetes·gitlab·jenkins
星释3 天前
Yii2项目自动向GitLab上报Bug
前端·gitlab·bug·yii
星释6 天前
如何自动部署GitLab项目
gitlab