git - 我可以同时 rebase 和压缩提交吗?

标签 git

当我对之前几次提交的更改进行修复时,我总是会连续运行两次 rebase。是否可以一步完成此工作流程?假设我有 4 个新提交。

* (master) D
* C
* B
* A
* Base

我在 B 中发现了一个错误,所以我创建了一个分支并修复了它。

* (master) D
* C
| * (fix) Fix.
|/  
* B
* A
* Base

接下来我运行 git rebase --onto fix B D 将 C 和 D 移到 B 上。

* (master) D'
* C'
* (fix) Fix.
* B
* A
* Base

最后,我运行 git rebase --i fix^^ 来查看最后几次提交,并将 B 和 Fix 压缩为一个提交。

* (master) D'
* C'
* B'
* A
* Base

是否有更快的方法来完成相同的工作流程?我想 merge 会更容易,但 merge 对我来说是不可能的,因为我使用的是需要线性历史记录的 git svn。

最佳答案

当交互式 rebase 中的提交列表编辑器出现时,您可以根据自己的喜好自由添加、删除或重新排序提交。这基本上是一种影响将要发生的循环中的 cherry-pick 的方法(这就是 rebase 归结为的原因)。

关于git - 我可以同时 rebase 和压缩提交吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251011/

相关文章:

git - Invoke-Expression,不是所有的输出都返回给变量

ruby - Rugged - 获取、 pull rebase 可能吗?

git 图形用户界面 : how to clone and push?

git p4 克隆/同步 : how to add new P4 path

git - 如何修复尝试使用 Git 推送时出现的 "remote: fatal error in commit_refs"错误?

git - 将 master merge 到主分支

linux - git-buildpackage 提示下载的源代码 *.orig.tar.gz 不可用?

git - 我可以对 Git 别名使用一组命令(外部和内部)吗?

c++ - 如何将版本号从git标记传输到CPack生成的源包?

git - 用子模块 fork github repo?