常用的git分支管理方法都在这了

这篇具有很好参考价值的文章主要介绍了常用的git分支管理方法都在这了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、分支管理定义     

二、分支管理的预备知识

1. 分支管理的区域

 2. git文件的四种状态

三、分支管理策略

1. 查看、新建分支

a. 查看分支

2. 操作分支 

a. 切换分支

b. 关联分支

c. 删除分支

四、push分支

        1. 忽略文件        

        2. push命令


一、分支管理定义     

        几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,Git 分支实际上是指向更改快照的指针。

        其作用显然是方便开发:企业在开发项目中一般少不了四个分支:

git 分支管理,git,git,前端,c5全栈,ruby

master分支:用于版本的更新,当比较大的功能开发完成或者更新之后会有一次集体的发版,就会将所有的代码都合到master(有的公司也会用release分支发版,原理都是一样);

dev分支:一般是开发测试分支,在项目发版上线之前都会现在dev分支上统一进行测试,确保功能达标没有bug之后再推到master分支;

feature分支:用来做分模块功能开发,建议命名为feature-xxx,模块完成之后,会合并到 dev 分支;

hotfix分支:是用来做线上的紧急 bug 修复的分支,建议命名为 hotfix-xxx。当线上某个版本出现了问题,将检出对应版本的代码,创建 Hotfix 分支,问题修复后,合并回 dev和master  ,这里注意,合并到 master 的时候,一般要打上修复后的版本标签。

二、分支管理的预备知识

1. 分支管理的区域

a. 本地分支:

  • Workspace:工作区,就是vscode中日常开发存放项目代码的地方

  • Index (Stage):暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • History:本地仓库,就是安全存放数据的位置,这里面有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本。

b. 远程分支

  • Remote Directory:远程仓库,托管代码的服务器,即公司的 git仓库 DevOps

        一般开发过程中,我们会把本地与远程的分支名设为同名。那怎么区分呢?远程分支名前面有 remote origin 标志!各个区域的关系如下图所示:

git 分支管理,git,git,前端,c5全栈,ruby

 2. git文件的四种状态

        在从远端下载项目代码时,要求是用命令行 clone代码,而不是鼠标点击下载一个压缩文件,区别在于,clone下来的文件夹里有个.git目录,关于文件版本等的所有信息都在这个目录里面!它也是你能够进行分枝管理版本控制的基础。

        版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

git 分支管理,git,git,前端,c5全栈,ruby

三、分支管理策略

        一般来说,项目开发的流程为:从代码仓库的master分支下clone下项目的工程代码,然后基于当前master分支新建自己的feature分支进行开发,这个要注意本地和远程分支的关系(不清楚的可以看我上篇文章git入门)。开发完成之后就推到dev测试,通过测试之后就可以merge合到master,合到master分支的操作一般叫 “提mr” , 通过公司的DevOpps流水线操作。如果临时需要新增什么小功能或者修复什么小bug可以 “ 提热更”,也就是从master分支拉个hotfix分支,进行修改然后直接测试完合到master分支。

git 分支管理,git,git,前端,c5全栈,ruby

具体分支管理如下:

1. 查看、新建分支

a. 查看分支

git branch

1.1 git branch 不带参数,查看本地已经存在的分支,并且在当前分支的前面有 * 标记; 

git 分支管理,git,git,前端,c5全栈,ruby

1.2 后面加上 -a 参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来
如果用git branch -a没有显示全部的远程分支,可以通过git fetch将本地远程跟踪分支进行更新,与远程分支保持一致。git 分支管理,git,git,前端,c5全栈,ruby

1.3 后面加上 -vv 参数可以显示本地所有分支追踪(关联)的远程分支的情况,最后面是最近一次提交commit的注释。

git 分支管理,git,git,前端,c5全栈,ruby
 

b. 新建分支 

        git branch 后面加上新建的分支名 (branchname) 即可完成本地分支的建立(分支内容与master一样,因为在新建分支时的当前所处分支为master(*标识) ,也即你是基于master新建的test分支),并且此分支仅存在于本地。

git 分支管理,git,git,前端,c5全栈,ruby

2. 操作分支 

        包括:切换、删除、关联远程

a. 切换分支

        2.1 倘若需要查看本地新建的 test 分支情况,需要切换到本地分支

git checkout (branchname)

git 分支管理,git,git,前端,c5全栈,ruby

        2.2 新建切换可以合为一步:新建并切换到新分支,常用!!!

$ git checkout -b test2

git 分支管理,git,git,前端,c5全栈,ruby

         2.3 切换到远程分支(常用!!!)

        比如说我现在test1分支,想查看远端test2的代码(此时本地会新建并切换一个分支,当然你可以把这个本地的分支名设置成与远端同名)下面我演示设置不同名的情况:

git checkout -b [local name] [origin name]

git 分支管理,git,git,前端,c5全栈,ruby

b. 关联分支

        2.4 本地新建的分支,需要关联远程的某个分支才能 push 成功,否则会出现一下报错,关联命令会自动提示,按提示关联远程分支后会在远端新建一个同名的远程分支

git 分支管理,git,git,前端,c5全栈,ruby

git 分支管理,git,git,前端,c5全栈,ruby

当然你也可以先关联再push:

git branch --set-upstream-to=origin/xxx分支名
git remote add origin  远端仓库地址

c. 删除分支

 2.5 删除远程分支

git push origin --delete test2

git 分支管理,git,git,前端,c5全栈,ruby

 2.5 删除本地分支,注意不能删除当前所在分支,不然会报错,只能删除非当前分支

git branch -d test2

git 分支管理,git,git,前端,c5全栈,ruby

四、push分支

        1. 忽略文件        

有些时候我们不想把某些文件纳入版本控制中,比如依赖包node_modules(很大)、dist文件、临时文件、日志文件yarn-debug.log*等,在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略;

  2. 可以使用通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等;

  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略;

  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略;

  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。


#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

        2. push命令

git push 命令用于从将本地的分支版本上传到远程并合并:

git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则上述命令可以省略‘ :<远程分支名> ’,如将本地的 master 分支推送到 origin 主机的 master 分支:
git push origin master

如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数,但一般不建议使用。多人协作时,若push失败时应当自行处理完冲突再push,而不是用以下命令。

git push --force origin master

此外,前文中直接使用 git push 进行push,仅适用于本地和远程分支已关联并且同名的情况!文章来源地址https://www.toymoban.com/news/detail-783720.html

到了这里,关于常用的git分支管理方法都在这了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 入行区块链的要学习的全栈内容都在这了,以后不要再问了

    区块链领域要学的内容还是挺多的,不过都不是新技术,全面一点话张群给大家总结了如下全栈内容供大家参考。不过并不是都要学,往下看,我最后说的那一段话很重要。 1. 编程语言 : Solidity :以太坊智能合约的主要编程语言,类似于JavaScript和C++。 Python :由于其易用性

    2024年01月25日
    浏览(42)
  • 你想要的git命令都在这(图解)

    2.8 git add 【在git status中被修改的文件】在当前分支下添加被改动过的代码 2.9 git push origin 【本地分支】:【远程分支】将本地分支push到远程分支下,包括创建 2.10 git-keygen 生成密钥,github需要,在查找时使用cat ~/.ssh/id_rsa_pub命令直接找到公钥 2.11 git log 查看操作日志log 2.12

    2024年04月25日
    浏览(30)
  • git版本管理:分支合并常用命令

    常用命令在这里:https://www.runoob.com/git/git-basic-operations.html 全部来自这个知乎专栏:杨世伟 git remote -v(这个命令没什么用) 默认执行git remote命令后会列出之前设置过的所有远端仓库的别名 展示当前关联的其他仓库列表 与上面的命令一样,但是输出会包含每一个仓库的URL.

    2024年02月03日
    浏览(49)
  • 前端开发规范(二)-Git分支管理及命名

    Git 是目前最流行的源代码管理工具。为规范开发,保持代码提交记录以及 git分支结构清晰,方便后续维护,总结了如下规范。 Git主分支(保留分支):master、dev 主要分支:Master和Dev。前者用于正式发布,后者用于日常开发。 Git辅助分支(临时分支):feature、release、fix 除

    2024年02月16日
    浏览(41)
  • Git的常用命令,及还原文件的指定版本,及分支管理

    一.git 常用命令 二.还原文件的指定版本(从版本库中恢复文件) 怎么查看最后一次提交id 显示下面的结果 然后使用下面命令,就会恢复之前的修改 三.分支管理 创建分支分为两种情况 一.第一种情况 创建仓库时就把分支创建出来 2.第二种情况 已有仓库,在创建分支 3.修改分

    2024年02月11日
    浏览(50)
  • Git分支管理:理解主干与分支的概念及使用方法

    Git 的主干是指代码库中的主要分支,通常称为 master 分支。在 master 分支上,您可以看到项目的最新版本,这是所有其他分支的基础。当您在 master 分支上进行更改时,这些更改将影响到所有其他分支。 分支是指从主干分支(或其他分支)分离出来的一个独立的代码版本。分

    2024年02月15日
    浏览(32)
  • Git创建新分支,分支常用命令

    注意新建的分支是基于当前所在的分支来创建的,比如当前处于develop分支,新建的分支就基于此分支 即在远程仓库用此分支的代码来新建此分支,只有第一次需要用 -u,后续都是正常的commit、push。 -u表示把本地分支和远程分支进行关联,远程仓库的别名一般是origi 查看所有

    2024年02月13日
    浏览(43)
  • 【git常用操作】git的分支创建、切换、提交与关联分支操作

    下拉代码建议用ssh密钥方式下拉 ,配置好之后后续操作不需要输入密码等权限验证操作,很方便。 查看分支: 创建本地分支: 切换本地分支: 创建+切换分支: 将新分支推送到github: 建议使用IDEA集成git来完成下列操作 ,如果使用上面提到的ssh密钥方式下拉工程的话会方便

    2024年02月15日
    浏览(48)
  • git实用命令 git常用分支命令

    要在Git中创建一个新的分支,按照以下步骤进行操作: 确保你当前在要创建分支的代码状态下。你可以使用 git status 命令查看当前的代码状态,并使用 git add 和 git commit 命令将修改的文件提交到当前分支。 1.使用 git branch 命令创建一个新的分支。 这将在本地仓库中创建一个

    2024年02月10日
    浏览(44)
  • Git笔记--分支常用命令

    目录 1--git branch -v 2--git branch 3--git checkout 4--git merge git branch -v 用于查看分支版本; git branch 用于创建分支; git checkout 用于切换分支,更改工作区的文件不会影响其它分支(前提是 修改的文件需要在修改的分支里进行git commit) git merge 用于合并分支,假设当前分支是 xxxxx,上

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包