1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 版本控制工具Git——分支管理

版本控制工具Git——分支管理

时间:2023-10-02 00:51:59

相关推荐

版本控制工具Git——分支管理

开发工具|git

git

开发工具-git

分支是Git的一个杀手级应用,和其他版本控制工具不一样的是,git创建及切换分支的效率极其高效。

php 二开卡盟源码,vscode怎样运行vue,ubuntu ssd配置,tomcat 指定扫描路径,爬虫大数,httpsqs php,咸宁seo推广公司排名,类似微赞的网站有,手游影片模板lzw

分支简介

oa移动办公源码下载,vscode插件查看注释量,ubuntu重启卡在,用tomcat的网站,网页爬虫功能,php 输出图片到浏览器,医疗保健seo优化获客,产品推广网站源?alzw

何为分支呢?我们从一个我们非常熟悉的场景来讲述,一个已经上线的产品,现在需要新增一个功能。这个时候,如果我们在原分支上继续开发的话,就很不方便,因为是一个已经上线的应用了,肯定需要先测试完毕后才能够上线。一般我们的做法是,建立一个新的分支,在这个新的分支上开发新的功能,测试完毕后,再合并到主分支上。

gps 云平台源码,ubuntu未登录休眠,tomcat管理命令行,紫色爬虫图片,php必须学vue吗,seo 拓展lzw

分支的创建、切换

目前我的版本库分支情况如下:

创建分支

现在我们创建一个新的分支,dev。创建分支的及查看分支命令如下:

git branch 分支名git branch# git branch dev# git branch dev* master

切换分支

分支已经建立成功了。现在我们来切换到新的分支,切换分支的命令如下git checkout 分支名

# git checkout devSwitched to branch dev

现在,我们在新的分支做一些修改,然后提交,然后切换到master分支上做点修改并提交。然后,我们看看分支的状态。

git vim config.php # 修改config.php文件git add . && git commit -m add config.phpgit checkout master # 切换到主分支git vim config.phpgit add . && git commit -m change config.php

$ git log --oneline --decorate --graph --all* ca4589c (HEAD -> master) add config file| * 43a5a8f (dev) add config.php|/* 19e3186 add index.php* 9cc82f9 first commit

一条命令完成分支的创建及切换分支

git checkout -b 新分支名

分支的合并

首先引入一个场景,该场景非常的常见:

一个系统已经上线

该系统需要更新一个新的功能,所以你新建了一个分支(dev)并在此分支上开展工作。

此时,系统突然出现的一个问题,需要紧急排查处理。

那么,这时候你需要先切换到线上版本(master),然后新建立一个分支(fixbug),在新的分支上修正错误

完成测试后,切换到线上分支,然后来合并fixbug分支,再将改动推到线上的分支。

最后,我们就可以切换到dev分支来继续工作了。

目前,我们版本库状态如下:

现在,需要新建一个新分支,在新分支上添加新的功能。

git checkout -b dev

然后在新的分支上做一些修改。

此时,发现线上出现了一个严重的bug,需要紧急处理。那么,首先我需要切换到master分支。但在切换的时候发生了一个错误

$ git checkout mastererror: Your local changes to the following files would be overwritten by checkout: login.phpPlease commit your changes or stash them before you switch branches.Aborting

以上错误我们经常会碰到,这是因为在合并分支的时候,工作区和暂存区必须是“干净”的。有两种方法可以达到上述要求

提交修改

暂存

我们这里使用暂存的方法来演示

$ git stash$ git checkout masterSwitched to branch master

当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。

现在,我们新建fixbug分支,在这个分支上修复bug。

$ git checkout -b fixbug

合并分支

修复完成且测试通过时,就可以把它合并到master上了。合并使用git merge 分支名

$ git checkout master Switched to branch master $ git merge fixbug

删除分支

这个时候,fixbug功能已经完成了,可以将它给删除掉了。

$ git branch -d fixbug Deleted branch fixbug (was cca73bb).

现在,我们可以继续在dev分支上工作了。我们需要把之前暂存的内容取出来。

$ git checkout dev$ git stash popOn branch devChanges not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: login.phpno changes added to commit (use "git add" and/or "git commit -a")Dropped refs/stash@{0} (2f8476defbaa813e31f3e1b081f5b88416b2ff50)

新功能完成后,提交到版本库。

冲突解决

现在我们新的功能完成了,那么就可以把它合并到master分支上了。现在我们来演示合并时遇到冲突时,如何去解决。

$ git checkout masterSwitched to branch master$ git merge devAuto-merging index.phpCONFLICT (content): Merge conflict in index.phpAutomatic merge failed; fix conflicts and then commit the result.

提示我index.php合并的时候有冲突,我们来看看该文件

$ cat index.php<?php<<<<<<>>>>>> dev

$ cat index.php <?php echo version 1.1 finished;

然后再add并提交,最后在提交

$ git commit -m merge dev

这个时候就合并成功了,现在就去删除dev分支吧。

$ git branch -d dev

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。