IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git中通过rebase操作解决冲突并提交PR -> 正文阅读

[开发工具]git中通过rebase操作解决冲突并提交PR

我们通常通过 Github 进行协作工作,有时候在提交 PR 过程中,可能存在与别人已合并 PR 的冲突问题,此时便可以通过 rebase 操作解决这些问题并重新提交 PR,下面我们将这个过程简单描述记录一下。

1.场景构造

首先让我们在脑子中构造一个简单的场景:当我们提交一个 PR 到 Github 的主仓库时,此时通过 Github 的检查发现存在很多与主分支的冲突,这些冲突并不能通过在 PR 中进行对应文件的修改解决。

2.rebase 过程

此时我们需要做如下操作:

  • 在我们的 Github 分支上,拉取与主库的差距(Sync fork操作)
    在这里插入图片描述
  • 将我们自己分支的最新信息 pull 到本地的主分支(例如 dev 分支)
  • 切换到需要 rebase 的分支,执行命令对分支进行 rebase
    # chris @ ChrisdeMacBook-Pro in ~/dolphinscheduler/dolphinscheduler on git:PR-fix-wordcase-issue x [8:48:45] C:128
    $ git rebase dev
    
  • 此时通常会自动合并 master 分支中一些可合并的差异文件(Auto-merging),一些存在冲突的文件会列出来(CONFLICT),如下:
    $ git rebase dev
    Auto-merging dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
    Auto-merging dolphinscheduler-ui/src/views/projects/task/components/node/format-data.ts
    Auto-merging dolphinscheduler-ui/src/views/projects/task/components/node/fields/index.ts
    Auto-merging dolphinscheduler-ui/src/locales/en_US/project.ts
    Auto-merging dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java
    Auto-merging dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java
    Auto-merging dolphinscheduler-task-plugin/dolphinscheduler-task-dataquality/src/test/java/org/apache/dolphinscheduler/plugin/task/dq/DataQualityTaskTest.java
    CONFLICT (content): Merge conflict in dolphinscheduler-task-plugin/dolphinscheduler-task-dataquality/src/test/java/org/apache/dolphinscheduler/plugin/task/dq/DataQualityTaskTest.java
    Auto-merging dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/parameters/SqlParametersTest.java
    Auto-merging dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/SqlParameters.java
    Auto-merging dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java
    Auto-merging dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/DataSourceMapperTest.java
    Auto-merging dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/DatasourceUser.java
    CONFLICT (content): Merge conflict in dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/DatasourceUser.java
    Auto-merging dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DqRuleServiceTest.java
    Auto-merging dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java
    Auto-merging dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
    Auto-merging dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DqRuleServiceImpl.java
    Auto-merging dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java
    Auto-merging docs/configs/docsdev.js
    error: could not apply 1df0c5016... modify Datasource to DataSource on all related files
    Resolve all conflicts manually, mark them as resolved with
    "git add/rm <conflicted_files>", then run "git rebase --continue".
    You can instead skip this commit: run "git rebase --skip".
    To abort and get back to the state before "git rebase", run "git rebase --abort".
    Could not apply 1df0c5016... modify Datasource to DataSource on all related files rebase and repush
    
  • 接下来我们需要使用编辑工具(例如 vim)修改这些 CONFLICT 涉及的文件,把其中 “HEAD” 后的冲突按照你的想法进行修改,然后保存
  • CONFLICT 文件都解决后,执行 git add xxx,然后继续执行 git rebase --continue
  • rebase 完成后,可以执行 git push origin pr-name -f,强制更新到远程仓库的对应pr上
  • 注意:如果在 rebase 过程中,您不想继续了,也可以执行 git rebase --abort 来终止 rebase

整个 rebase 的过程记录大体如上,基本可以解决所有 PR 提交过程中产生冲突的情况,希望能帮助大家。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:48:32  更:2022-09-21 00:51:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:00:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码