git - 将当前分支中的更改推送到其他分支
问题描述
我现在在dev
分支上工作。早些时候,我featureX
从分支创建了一个分支dev
,从那时起我对dev
分支进行了 15 次提交。现在我想要分支中的所有这 15 个提交featureX
,以便我的featureX
分支也可以拥有我上周在dev
分支中完成的所有工作。
我对 , 等命令感到非常rebase
困惑rebase --onto
。我应该使用其中之一吗?
解决方案
听起来有 3 个 git 命令可能会有所帮助:rebase
、cherry-pick
和merge
.
变基
集成分支的最简单方法......是合并命令。它在两个最新的分支快照之间执行三向合并......以及两者的最新共同祖先......,创建一个新的快照(和提交)。
但是,还有另一种方法:您可以获取引入的更改补丁......然后在顶部重新应用它。在 Git 中,这称为变基。使用 rebase 命令,您可以获取在一个分支上提交的所有更改并在另一个分支上重放它们。
在您的示例中,您可以执行以下操作:
git checkout featureX
git rebase dev
# continue your development on the featureX branch
# if there are conflicts, resolve them, and then continue with
git rebase --skip
# when done with changes, do:
git checkout dev
git merge featureX
樱桃采摘
应用一些现有提交引入的更改。
在您的示例中,您可以执行以下操作:
git checkout dev
git cherry-pick ^HEAD dev
合并
将一个分支的更改合并到另一个分支。
在您的示例中,您可以执行以下操作:
git checkout featureX
git merge dev
所有示例和摘录均来自文档:
- https://git-scm.com/book/en/v2/Git-Branching-Rebasing
- https://git-scm.com/docs/git-cherry-pick#Documentation/git-cherry-pick.txt-codegitcherry-pickHEADmastercode
- https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#_basic_merging
进一步阅读:
推荐阅读
- python - 如何使用熊猫将列中的值更改为正数并舍入到单个小数点
- laravel - 如何实现 morris.js 到 laravel dompdf
- javascript - 移除渲染组件时的 Vue 内存泄漏
- sql - 将递增值与其他值一起添加到 Oracle 数据库中的列中
- kotlin - 从类中获取可为空的 var
- angularjs - UI Grid gridApi.selection.getSelectedRows() 没有按照选择的顺序给出行
- python-3.x - 使用CAD时如何用放码点对NURBS曲线进行放码?
- automationanywhere - 如何使用 Automation Anywhere 工具从一年中的当前日期查找每个季度的 25 日?
- python - 如何将散列密码与 Python 中的 Input() 进行比较?
- apache-camel - 如何在骆驼单义性固定解析器中允许更短的行?