git之rebase和merge学习记录

本文记录了在git中使用rebase和merge进行代码合并的学习过程。rebase保持提交历史线性,适合发布,而merge保留原有分支历史。在合并前,应先更新master,然后在工作分支上rebase,再切换回master进行rebase。
摘要由CSDN通过智能技术生成

git之rebase和merge学习记录

用git合代码遇到冲突,现在把解决过程中学习的记录下来.

现在有两个分支:一个是用来发版的master,另一个分支work,是从master切出来的用作自己写代码什么的.假设分支提交情况如下:
这里写图片描述
现在自己工作完了,要把work的代码合到master上面,一般就是用merge或者rebase.

先说下merge, 它不改变两个分支原来的提交记录,而是把要合并的分支的commit和自己本身的commit合并到一个补丁里面,然后加到两个提交记录后面产生一个新的记.比如你这样:
git checkout master; # 切换到master分支

git merge merge work; # 合并本地work分支

那么提交log就变成了:
这里写图片描述
merge可以留着C和D(互不相连的),可以把master分支切换到C或D.另一个记录的代码就不会影响在master上.
再说说rebase, 它是把当前分支的提交记录拿出来产生临时的补丁,再追加到要合并的分支上,提交记录就变成一条线:
git checkout work;# 切换到work分支, 要是出现代码冲突就在本分支解决
git rebase master;# 合并本地的master分支:
这里写图片描述
详细一点就是,在work分支上合并master的代码:
第一步把work的提交记录D拿出来(变成了补丁);</

gitrebasemerge是两种常用的版本控制操作。 rebase操作是将一个分支的提交记录移动到另一个分支的最新提交之后。具体操作是通过取消当前分支的每个提交,并将它们保存为补丁文件,然后将当前分支更新到目标分支的最新状态,最后将保存的补丁文件应用到当前分支上。这样可以使得分支的提交历史更加线性,清晰。 merge操作是将一个分支的提交合并到另一个分支上。具体操作是通过拉取目标分支最新的提交,然后将当前分支的修改与目标分支的提交进行合并。这种操作会在合并点处生成一个新的合并提交,保留了原分支和目标分支的独立提交历史。 两种操作的使用场景不同,rebase适用于在本地开发时需要把自己的提交记录整合到目标分支的最新提交之后的情况,可以使得提交历史更加整洁;而merge适用于多人协作或合并不同功能分支的情况,可以保留各分支的提交历史。具体的使用方式和操作流程可以参考上述引用的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [git mergegit rebase详解](https://blog.csdn.net/qq_35535785/article/details/126269443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [git的两种合并策略:用git-merge还是git-rebase?](https://blog.csdn.net/sunyctf/article/details/124084353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值