关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

5分钟掌握git-branch的使用

guanshanw 2023-09-30 13:36 16 浏览 0 评论

Git是当前应用最广泛的版本控制系统之一,是每个开发人员都要了解的重要工具。

它与其他版本控制系统相比,最大的好处之一是它的分支功能。

Git分支是版本控制工作流的基本,又是重中之重。

这篇小短文将讨论如何创建、删除、合并和重新设置Git分支,我们可以从以下几个环节来补充Git知识。

什么是分支?

想用一个工具,我们就要先了解这个工具。

假设我们正在跟团队一起处理一个项目,并且我正在创建一个需要对代码库进行大量更改的新功能/模块。

在这个过程中,您发现了一个需要修复的bug。

这个bug与我的新功能有关,但我不想影响你的代码。这种情况可能会变得复杂。我要怎么把当前正在处理的代码隔离开?

这就是Git分支的来源。

分支是源代码管理的一个核心概念,它允许我们将工作划分为不同的分支,这样我们就可以自由地处理源代码,而不会影响其他人的工作或主分支中的实际代码。

对于Git,我们可以从一个名为master的主分支开始。Git允许我们创建任意数量的分支。

注意:不必总是从主分支创建分支。我们可以从任何其他分支创建新分支。

在单独的分支中,我们可以在不直接影响源代码的情况下进行实验和测试。分支允许我和团队在上下文之间切换,而不用担心影响不同的分支。

对于团队来说,它是一个很好的工具,因为它使协作更容易、更方便、更灵活。

注意:Git分支不同于SVN分支。Git分支在您的日常工作流程中非常有用,而SVN分支则用于大规模的开发工作。

创建分支

本地分支

本地分支只能在我们本机设备上访问。

但在将分支推送到远程存储库之前,我们需要先创建本地分支,如果分支已经存在,我们可以直接切换:

git checkout <name>

如果本地分支还不存在,我们需要先进行创建,并切换到该分支:

git checkout -b <name>

通过这个步骤,我们知道了如何创建一个新的本地分支,接下来让我们看看如何创建一个远程分支。

远程分支

我们需要将本地分支推送到远端,进行绑定,从而成为一个远程分支。

当分支是远程的时候,这意味着任何可以访问远程存储库的人现在都可以访问远程分支,并在上面进行相关的操作,比如pull、push等。

git push -u origin <name>

删除分支

我们了解到了如何去创建一个本地分支和远端分支,并且进行绑定,从而在新的分支上实现我们的代码和协同开发。

当这个分支的工作完成之后,我们一般是需要删除该分支,比如说某个hotfix(bug修复)的分支,在完成代码修复、测试、合并工作后,这个分支一般是需要被删除的。

本地分支

基于该命令,我们可以对本地分支进行删除:

git branch -d <name>

有时候,Git会拒绝我们的删除分支命令。

比如说你的分支还存在没有合并到其他分支上的提交,或者还没推送到远端上的提交,这时候Git为了保护我们不会被意外丢失数据,会拒绝我们的删除分支请求。

如果我们已经确定该分支是可以被删除的状态,那么我们可以通过这个标记来进行(-D),该标记将进行强制删除操作:

git branch -D <name>

远端分支

在删除了本地分支之后,我们需要把远端上的分支也进行一个删除,不然我们也只是删除了自己设备上的分支罢了,其他人还可以对分支进行操作。

删除的方式则是通过push的方式,将delete推送给远端Git,进行对应分支的删除:

git push origin --delete <name>

合并分支

Git合并是分支的基本功能。

合并允许我们通过提交,来为两个或多个分支创建连接,且只会对目标分支进行更改。

比如说,master分支是这个目标分支。它将保留合并分支的历史的提交记录。

让我们回顾下一开始的例子,我们正在开发某个新功能,此时为了修复某个问题,我们创建了一个新的分支。

在这个分支上,我们进行了问题修复和测试,当我们完成了之后,我们希望把这个修复合并到主分支上,从而后续的版本发布我们都能够保证问题是已经被修复的状态。

那么在合并的时候,我们需要先对该分支和主分支都进行更新,要保证本地分支与远端是同步的:

git pull

随后,进入我们要合并过去的目标分支(比如是master):

git checkout master

将分支的提交合并到master分支上(比如该分支是hotfix-whatwhatwhat)

git merge hotfix-whatwhatwhat

合并完成后,您可以在本地master分支,检查项目的提交历史,从而验证合并是成功的。

如果合并成功并且hotfix-whatwhatwhat的工作已经完成,那么可以删除该分支分支,因为所有更改现在都集成到目标分支中。

最后,我们需要把合并后的本地master,推送到远端上,让合并真正生效并且存储在远端环境里:

git push

这个例子中我们用了master,但实际上master一般作为一个保护分支,是不允许被直接提交和推送的,这种情况,我们可以会去到对应的git管理页面(比如gitlab或者github),通过创建MR的方式,来创建合并请求,并在通过人工审核后进行合并。这样就少了需要在本地进行本地分支合并的过程。

分支Rebase(变基)

git rebase——变基——是Git中的一个高级概念。

这看起来有点复杂,变基和合并是非常相似的。这两个命令都是从一个分支获取提交并将它们放到另一个分支上。

它们最主要区别在于,合并是将提交叠加在本地的提交之后,而变基则是将分支的初始提交记录进行变更。

比如feature分支从master分支拉出来的时候,是从提交记录A处拉取的,在feature开发的过程中,master的head从提交记录A变到了B,那么通过rebase,我们可以将feature的初始提交记录从A变到B,而合并则是,将master的新变化合并到feature,并且会形成一个新的merge提交记录。

我们简单地介绍下这个命令,但这个命令不是适用于任何场景:

git checkout feature-xx
git rebase master

祝贺!

我们在使用Git分支上迈出了第一步!

想要非常熟练地使用Git来进行版本控制,实际上也是需要付出一定的心血去学习和实践的。

通过日积月累的知识储备,到最后,Git在你的整个职业生涯中为您提供非常优秀的体验和服务。


谢谢大佬们的评论、点赞和转发[耶]

关注居家程序员,时不时更新技术“硬”文和代码生活小乐趣

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: