git分支

本文详细介绍了Git中的分支概念,包括分支创建、管理(如删除、查看和切换)、开发模式(长期分支与短期分支),以及远程分支的交互操作,重点讲解了merge和rebase的合并方式及其适用场景。
摘要由CSDN通过智能技术生成

目录

分支简介

分支创建

分支管理

分支开发

​​​​​​​远程分支

​​​​​​​分支合并

​​​​​​​​​​​​​​merge

​​​​​​​rebase


分支简介

git 的分支实质上是包含所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件,所以它的创建和销毁都异常高效, 创建一个新分支就相当于往一个文件中写入 41 个字节(40 个字符和 1 个换行符)。

分支创建

创建分支:git branch 分支名称

创建分支并切换到该分支:git checkout -b 分支名称 ,该命令等价于先创建分支再切换到该分支,先 git branch 分支名称,再git checkout 分支名称。

​​​​​​​分支管理

删除本地分支:git branch -d 分支名称,删除分支前需要先切换到其他的分支上。

强制删除本地分支:git branch -D 分支名称

查看分支列表: git branch

查看所有分支上的最后一次提交: git branch -v

查看已经合并到当前分支的分支列表:git branch --merged

查看未合并到当前分支的分支列表:git branch --no-merged

​​​​​​​分支开发

长期分支:master分支的代码保持稳定,假如项目是按周期迭代开发的,以master为基础每一个开发周期创建一个新分支开发,当分支上的代码测试通过后,把master合并到分支,上线完以后,再把分支上的代码合并到master。

短期分支:用来实现单一特性或者修复bug等,一般留存的时间不会很长,处理完后就会删除。

​​​​​​​远程分支

拉取:git pull 等价于

先 git fetch 再 git merge

推送:

如果是本地创建的分支,推送到远程:  git push --set-upstream origin 分支名称

如果是从已经存在的远程分支检出到本地,推送修改到远程: git push

删除远程分支: git push  origin --delete 分支名称

​​​​​​​分支合并

git中两种合并代码的方式merge跟rebase,要根据自己的使用场景来选择,没有最好只有最合适。merge能保存完整的提交历史,但是提交记录是树形的看起来会比较乱。rebase可能会丢弃一些提交记录,它会忽略项目开发的过程,保留最终的结果,它的提交记录是线型的,看着很规整。

总之记住一句话,只对本地修改执行变基操作清理历史,不对已推送的提交执行变基操作,这样,你才能享受到两种方式带来的便利。

​​​​​​​​​​​​​​merge

合并其他分支代码到当前分支:git merge 分支名称

如下图,merge是把两个分支上最近共同的快照(c2)进行三方(c2,c3,c4)合并生成一个新的快照(c5)。

​​​​​​​rebase

以上图为例,当前分支是 experiment, 此时 执行git rebase master 后,执行结果如下图。

rebase(变基)是先找到两者最近的快照,把从这之后的提交都放在了rebase的分支之后,改变了当前分支的基点。

再看一个rebase的例子,如下图

从一个分支里再创建一个分支,假设你希望将 client 中的修改合并到主分支并发布,但暂时并不想合并 server 中的修改, 这时可以这么操作,先切换到master分支,再执行 git rebase --onto master server client,rebase结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值