在我的工作地点,我们使用Gerrit服务器进行代码审查。通常,不同的人会创作不相关的提交。我遇到了一个问题,我必须创建一个依赖于另外两个不相关的提交的提交。
假设gerrit服务器上有两个提交:
这两者是相互独立的。我的工作是实现Commit C:“添加函数flipRotateImage”。这需要提交A和B两者。
我有两个问题:
答案 0 :(得分:3)
git rebase --onto
。确切的过程在很大程度上取决于您在第一个问题中如何选择处理问题,但忽略了这一点并假设您已经检查了C的主题分支,那么git rebase --onto newA oldA
将会这样做。答案 1 :(得分:2)
Gerrit已经提议在git DAG之外支持这种依赖规范。此更改旨在用于跨项目依赖项,但它也应支持此类项目内提交依赖项。对不起,它现在对你没有帮助。
答案 2 :(得分:0)
1)实际上你可以从A开始并合并B,然后将你的更改作为合并提交的修正。如果更改足够独立,您甚至可以合并两个以上。 (章鱼合并)
2)这很棘手。重新定位是不够的 - 有一个原因是没有人在谈论章鱼变种,而git-rebase
只会尝试重新绑定到一个父亲身上。但我想你可以创建一个合并,重新绑定到它,然后压缩合并提交和你的提交。
我在实践中没有尝试过任何这个,它可能很不稳定,但我想确保有人提到它。 技术上这是可行的。