首页 > 其他分享 >Git常用命令,merge和rebase的区别

Git常用命令,merge和rebase的区别

时间:2024-03-04 10:14:36浏览次数:23  
标签:Git rebase --- merge master 提交 分支

image

简介 - Merge 和 Rebase

在Git中,rebase和merge是两种常用的将一个分支的更改合并到另一个分支的方法。

  1. Merge(合并):

    • 当你执行merge时,Git会创建一个新的提交,将两个分支的更改合并在一起。这个新的提交会有两个父提交,代表了被合并的两个分支的历史。
    • Merge会保留每个分支上的提交历史,因此可以清晰地看到每个分支的工作进展。
  2. Rebase(变基):

    • 当你执行rebase时,Git会将当前分支的基础更改为另一个分支的最新提交,然后将当前分支的更改逐个应用在这个基础之上。
    • 这样会使得提交历史更加线性,看起来更整洁。但需要注意的是,rebase会改变提交历史,因此在多人协作或者公共分支上使用时要谨慎。

选择使用merge还是rebase取决于具体情况:

  • 如果你只是希望将一个分支的更改合并到另一个分支,并且希望保留每个分支的提交历史,那么使用merge是一个不错的选择。
  • 如果你想要保持提交历史的整洁,或者在将更改合并到主分支之前先将主分支更新为最新版本,那么可以考虑使用rebase。

图例

当我们对两个分支进行合并时,merge 和 rebase 会产生不同的提交历史。以下是一个简单的示例图,演示了 merge 和 rebase 的区别。

Merge 示例图:

  o---o---o---o---o  master
       \         /
        o---o---o  feature

在这个示例中,我们在 feature 分支上开发了新功能,然后执行了 merge 操作将其合并到 master 分支。这会产生一个新的合并提交,形成一个合并的提交历史:

  o---o---o---o---o---o  master
       \         /     /
        o---o---o-----o  feature

Rebase 示例图:

  o---o---o---o---o  master
             \
              o---o---o  feature

在这个示例中,我们在 feature 分支上进行了相同的开发工作,然后执行了 rebase 操作将其应用到 master 分支上。这会将 feature 分支的提交依次应用到 master 分支上,形成一个线性的提交历史:

  o---o---o---o---o  master
                     \
                      o---o---o  feature

通过这两个示例图,你可以清楚地看到 merge 和 rebase 在提交历史上的区别。Merge 会创建一个合并提交,而 rebase 会将提交应用到目标分支上,使得提交历史更加线性。

标签:Git,rebase,---,merge,master,提交,分支
From: https://www.cnblogs.com/crispyChicken/p/18051241

相关文章

  • pycharm下master代码回滚了,dev提交了新代码,dev merge master有冲突解决
    在PyCharm的右下角,点击"Git:master",在弹出的菜单中选择"master"分支,然后点击"Checkout"。在菜单栏中,选择"VCS"->"Git"->"Log",在弹出的窗口中找到被回滚的提交,右键点击这个提交,然后选择"RevertCommit"。这将创建一个新的提交,恢复被回滚的更改。然后在右下角,点击&qu......
  • 新电脑装编程配置(jdk、MySQL、navicat、idea、Maven、gitee、环境配置)
    一、JDK(java运行环境,不安装不能在自己电脑上运行java语言)1.打开安装包     2.选择安装目录(建议选择非系统盘)      3.安装JRE(最好和JDK分开文件夹、建议选择非系统盘)     4.提示安装成功     配置环境变量:JAVA......
  • git分支管理和合并
    1.git分支管理和合并1.1认识分支创建仓库之后,就有了一个默认的分支:master 如图所示:包含N个提交历史按照顺序排列有名字查看分支1.git菜单查看2.或者git图标查看 ......
  • 使用PyCharm完成git操作
    1.使用PyCharm完成git操作1.1克隆项目vss,选择启用版本控制,菜单变为Git选择版本控制工具git输入git仓库地址,选择一个不存在的文件夹输入账号密码1.2修改代码略1.3提交代码1.提交代码 2.推送代码 3.提交并推送代码4.远程仓库结果5.查看操作日志 ......
  • Git --远程仓库操作-推送/拉取
    gitremote-v 查看当前所有远程地址别名gitremoteadd别名远程地址192:git_demofutantan$gitremoteaddgit_demohttps://github.com/Clairedandan/git_demo.git192:git_demofutantan$gitremote-vgit_demohttps://github.com/Clairedandan/git_demo.git(......
  • 使用git
    1.使用gitGit是以仓库为单位。先创建仓库才能使用Git,不同的仓库之间相互隔离仓库分为2种:本地:存储文件夹中远程:存储在互联网中初级使用流程从远程克隆(clone)本地在本地修改代码,完成之后进行提交(commit)从本地推送(push)到远程中级使用流程从远程克隆(clone)本地在本地创......
  • git的安装和配置
    1.什么是版本控制为了知晓版本的差异,或者为了区分准确的版本,需要进行版本的控制纯手动的版本控制,复制多份完整的代码这样做,如果项目大了之后,版本多了之后,非常不方便2.GITGit是一个版本控制的工具,而不是文件备份工具,项目推荐工程中,使用Git可以:记录项目的变更李四显示版本之......
  • 使用官方镜像快速部署 Gitlab
    之前已经发布过一篇使用docker-compose部署Gitlab的博客,使用的是国外的某位大佬制作的镜像。博客地址为:https://www.cnblogs.com/studyjobs/p/18015154.html本篇博客使用docker-compose采用官网提供的镜像部署Gitlab,部署过程非常简单无论采用哪种方式部署Gitlab,需要的......
  • vscode+gitee+picgo实现稳定图床
    目录:目录目录:1.为什么使用vscode+gitee+picgo实现完美图床2.安装VSCode2.1安装VSCode软件及相关插件3.安装picgo4.准备Gitee图床5.配置相关设置尾声1.为什么使用vscode+gitee+picgo实现完美图床为什么要选择VSCode+PicGo+Gitee主要是平时写文章的平台,要么是收会员费......
  • 在github开源市场如何高效寻找优秀开源项目
    作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?常用的开源网站有:github和giteegithub是全球最大的开源社区,今天就以github为例,演示一下github界面一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当然,一个好的项目,它......