我对在网上阅读的所有内容感到有点困惑,所以也许我可以通过解释我想做的事来得到更清晰的答案。
这就是我所拥有的: - Commit A有一些我和其他人需要的API更新。 - 提交A仍在审核中,因此尚未合并到主分支。因此我无法进行git fetch / merge / pull来获取这些更新。
我们想要做的是获取该代码,即使它仍在审核中,然后继续我们依赖它的工作。我尝试采摘樱桃,然后按照我的需要工作。在我决定准备提交并推送我的代码进行审核之前,没有问题。
我看到两个选择: 1: 不要提交我的代码,只是让它陷入困境。等到提交A合并。然后我必须以某种方式撤消我的樱桃选择,因为Cherry-picking会创建一个新的提交。然后我做一个git fetch / merge / pull,解压缩我的代码,提交我的更改,然后提交我的代码。
2: 有没有办法提交我的代码,只是让它依赖于Commit A合并?我不能简单地用樱桃选择推送我的代码,我得到一个错误,说樱桃选择的代码没有被更改。
答案 0 :(得分:0)
如果我没记错的话(已经过了一年),我相信如果你做了(1)(樱桃选择,藏匿,等待审核通过),如果你拉出现在合并的代码,然后弹出存储,然后在新合并代码的基础上重新定义它(假设你现在有两个不同的分支),它应该保留你所做的更改,然后你可以提交。
你必须小心不要丢失挑选的代码(确保你藏匿它,否则如果你改变分支你可能会丢失你的代码)。
问题可能是在代码审查过程中发生了某些变化,并且您有旧版本的"提交A。"当您尝试将更改置于其上时(新合并的代码),您可能会发生合并冲突(取决于您的重新绑定方式)。我建议让GitExtensions直观地看到当你执行诸如存储然后拉动之类的事情时代码如何分支。
我建议在一个单独的分支上测试我上面建议的方法,并在你正在开发的实际代码上尝试之前先了解它是如何工作的。