最常用的git命令我已经讲过了。如果公司采用单分支开发,只有一个master分支,可以说我之前说的可以解决80%的问题。这篇文章主要讲的是多分支情况下最重要的是分支管理。如果需要使用正式版,又想在不破坏正式版的情况下进行开发,这时候分支就很重要了。我们可以在分支上开发新的功能,然后合并到主分支上。整个过程在合并之前对主分支是透明的。创建分支需要明确。在本地创建分支意义不大。就像简单的复制粘贴一样,修改后无法将本地A分支推送到远程A分支。在实际开发中,需要将本地分支与远程分支关联起来。这样就可以将本地A分支的开发推送到远程A分支。先clone一个自建仓库,使用gitbranch查看本地分支,可以看到只有一个master;然后用gitbranch-a查看所有分支,发现除了本地的master分支,还有远程的devleop、feature、master分支。假设master是主分支,develop是开发分支,feature应该是特性分支,这里可以理解为patch分支。比如SpringBoot4.2是主分支,那么可能SpringBoot5是开发分支,也就是下一个迭代。但是SpringBoot4.3增加了新特性和修改了bug,在特性分支开发,然后合并到主分支。这只是一个模拟。真实情况是这样的。回到正题,远程仓库有3个。克隆时,默认只会克隆主仓库,但在正常多分支开发的情况下,一般会克隆所有分支或特定分支。使用gitbranchxxxorigin/xxx指定一个分支。一般来说,建议本地分支名称与远程分支名称相同,方便开发。如上,使用gitbranchdeveloporigin/develop意味着创建一个名为develop的分支,并将远程develop分支克隆到本地分支。分支“develop”设置为从“origin”跟踪远程分支“develop”。直译过来就是develop分支设置从origin开始跟踪develop分支,只有跟踪到本地commit代码后才能push到远程仓库对应的分支。执行命令后,本地有3个分支关联到远程。*号和switch分支前面高亮的地方代表当前分支。如上图所示,当前分支为master分支。您可以使用gitcheckout[branchName]来切换分支。会有提示说已经切换到develop分支,也可以使用gitbranch命令查看当前分支。如果将这条命令与前面的命令结合使用,gitcheckout-b[branchName]将创建一个分支并切换到该分支。Mergebranches本地单个分支推送到对应的远程分支,和普通的一样。无论我们开发哪个分支,最终都是为主分支或者发布分支服务,其他分支的内容需要合并到主分支中。.切换到主分支,可以看到主分支只有两个文件切换到开发分支,添加一个新文件然后添加,提交,推送,推送到远程开发分支,可以看到远程主分支没有添加文件。下一步是将开发分支合并到主分支中。注意,在真正的开发过程中,一般会把主分支设置为保护分支,我们是没有权限的。可以,可以直接push到公司其他远程分支,但是合并到主分支需要仓库管理员。这里只是模拟,所以直接在本地操作。首先,您需要切换到主分支。使用gitstatus,暂存区没有其他东西。gitmerge[branchName]从目标分支合并到当前分支。在这个例子中,内容从develop分支合并到main分支。使用gitstatus查看gitstatus可以看到合并后,本地分支已经领先于远程master分支。下次推送后,远程master分支上就会有文件了。不同分支之间的合并和之前的单master开发模式一样,从远程本地合并自己的仓库到远程公司的仓库,会产生冲突,本文不再赘述。删除分支一般情况下,我们不会删除公司的分支。但是可能有分支我们不想和公司接触,所以我们在本地创建了一个分支,相当于一个副本。在这个与远程分支没有关联的分支上开发测试完成后,会合并到远程非master分支,所以可能需要删除这个分支。创建一个名为backup的分支使用gitbranch-d[branchName]删除刚刚创建的分支。值得注意的是,如果要删除分支A下的分支A,是不允许的。创建起来并不容易。如果对您有帮助,欢迎点赞收藏分享!以下是个人的公众号,有兴趣的可以关注一下,说不定就是你的宝藏公众号!!!
