首页 > 其他分享 >git rebase开贴记录

git rebase开贴记录

时间:2024-07-16 20:45:18浏览次数:11  
标签:git 开贴 rebase feature --- 提交 分支

也可阅读这篇:https://blog.csdn.net/u012459903/article/details/122830997

git rebase 是 Git 中的一个重要操作,用来重新应用一系列提交到另一个基础提交之上。它的主要作用是将一个分支上的更改应用到另一个分支的顶部,从而使得项目历史更加线性和整洁。

基本概念

假设你有以下提交历史:

A---B---C main
     \
      D---E feature

如果你在 feature 分支上执行 git rebase mainfeature 分支上的提交将会被重新应用到 main 分支的顶部:

A---B---C---D'---E' feature

现在,feature 分支的提交 D 和 E 被重新应用到了 C 之后,并形成了新的提交 D' 和 E'

主要用途

  1. 更新分支:将一个特性分支的更改重新应用到主分支的最新提交之上,以便集成最新的更改。
  2. 保持历史记录整洁:通过线性历史记录来保持提交历史整洁,便于理解和回溯。
  3. 避免合并提交:通过重置基础提交来避免产生合并提交,从而简化提交历史。

git rebase 的操作步骤

  1. 切换到要 rebase 的分支

    git checkout feature
    
  2. 执行 rebase 操作

    git rebase main
    
  3. 解决冲突(如果有)

    • 在 rebase 过程中,如果有冲突,Git 会停止并提示你解决冲突。

    • 解决冲突后,使用 git add 添加解决的文件,然后继续 rebase:

      git rebase --continue
      
    • 如果你想中止 rebase,可以使用:

      git rebase --abort
      

操作示例

假设你有以下提交历史:

A---B---C main
     \
      D---E feature

你在 feature 分支上工作,现在想要将 feature 分支的更改应用到 main 分支的最新提交之后。

  1. 切换到 feature 分支

    git checkout feature
    
  2. 执行 rebase 操作

    git rebase main
    
  3. 如果有冲突,解决冲突并继续 rebase

    # 解决冲突后
    git add conflicted-file
    git rebase --continue
    
  4. 完成后,你的提交历史将变为

    A---B---C---D'---E' main
    

注意事项

  • 历史重写rebase 会重写提交历史,这意味着它会创建新的提交。如果这些提交已经推送到远程仓库,可能会导致其他开发人员的本地分支与远程仓库不一致。因此,在共享分支上进行 rebase 需要特别小心。
  • 避免在公共分支上使用:为了避免混乱,通常建议不要在公共分支(例如 main 或 master)上使用 rebase,而是使用 merge 来集成更改。

总结

git rebase 是一种强大的工具,用来重新排列提交历史,使其更为线性和整洁。它主要用于保持提交历史的清晰,更新分支,并避免不必要的合并提交。通过合理使用 rebase,你可以更好地管理和整合项目中的更改。

标签:git,开贴,rebase,feature,---,提交,分支
From: https://www.cnblogs.com/chentiao/p/18306050

相关文章

  • git回撤多种方式解读
    gitrollback 不是一个Git的原生命令,但它通常指的是在Git中将仓库状态恢复到之前的某个状态。这个操作可以通过多种方法实现,具体取决于你想要恢复的内容和程度。以下是一些常见的恢复操作:常见的恢复操作撤销最后一次提交:如果你想撤销最后一次提交,同时保留工作目录的更改,......
  • pycharm的git控制窗口里对远程分支进行checkout后,如果和本地文件有冲突会怎么办
    在PyCharm中,当你checkout一个远程分支时,它确实会将该分支的文件更新到本地。这一过程类似于在命令行中执行gitcheckout<branch>,然后将远程分支的内容同步到本地工作目录当你在PyCharm中检出一个远程分支时,如果本地文件有未提交的更改且这些更改与即将检出的分支发生冲突,Py......
  • gitlab通过docker部署搭建
    企业级GitLab在Docker部署使用 一、部署gitlab这里使用的是Centos8,安装Docker环境,这里不说了,参考:https://www.cnblogs.com/wei325/p/15139701.htmlgitlab有ce版和ee版,ce版为免费版本;ee版为企业版本,需要收费;这里用ce版。1)拉取Gitlab镜像dockerpullgitlab/gitlab-ce......
  • Linux 配置gitlab步骤
    最近在玩gitlab,记录一下配置gitlab的过程一、安装gitlab相关的依赖环境   (1) yuminstall-ycurlpolicycoreutilsopenssh-serveropenssh-clientspostfixpolicycoreutils-pythoncronie           (2) 启动Postfix        systemct......
  • Sixth Article from github - 6
    Title1contentfortest1Title2contentaddedfortest2文章链接:https://www.cnblogs.com/BensonLaur/p/18305465测试修改cblog覆盖情况继续修改github,覆盖测试显示图片(image\2024-07-16\1.png)图片1测试显示图片(https://pic.cnblogs.com/avatar/683006/2024071612......
  • idea 查看项目的git路径
    目录第一种方式:第二种方式:第三种方式:第一种方式:1、打开项目,在工程上右键,选择ShowinExplorer;如下图:2、此时会打开本地的代码路径窗口;如下图:3、双击工程,会出现git目录文件夹;4、双击进去git目录,打开config文件夹;5、文件里面的url属性即为git地址;第二种方式:1、......
  • 字节跳动内网开源的《Python项目开发实战》,GitHub飙升!
    今天给小伙伴们分享的这份手册的内容共15个章节,总共可以分为四个部分。第一部分,主要讲“Python开发入门”,这部分将重点放在了个人开发上,涵盖了简单的web应用开发和Python项目结构等。第二部分,主要讲“团队开发周期”,介绍书中的极客们在多人团队开发中遇到的问题,以及如何提......
  • 新手入门 Git 开发
    Git的三个概念提交:commit仓库repository分支branch注意:downloadzip与指令行:gitclone的区别:gitclone是从仓库里下载下来的,会含有一个.git的文件夹,而downloadzip则没有这样的文件夹一些命令操作指令克隆仓库:gitclone初始化仓库:gitinit添加文件到暂存区:gitad......
  • 本地代码推送远程仓库(gitee实例)
    https://www.cnblogs.com/shijiehaiyang/p/14147899.htmlhttps://www.cnblogs.com/maojunyi/p/7735723.html1.首先安装Git及Tortoisegit2.安装完成后手动创建.gitignore文件,用来排除不上传文件(如bin,obj等)3.在本地代码文件夹创建本地仓库4.提交master 5.创建远程仓库后,......
  • git: centos stream9上安装gitolite
    一,关于gitolite1,官网:https://gitolite.com/gitolite/index.html2,代码网站:https://github.com/sitaramc/gitolite3,说明:3个角色:git服务器,上面运行gitolite/ssh服务      管理服务器:用来管理项目,这里我们和git服务器用同一台机器       客户......