我对在线阅读的所有内容感到有点困惑,所以也许我可以通过解释我想做什么来获得更清晰的答案。
这是我拥有的: - 提交 A 有一些我和其他人需要的 API 更新。 - 提交 A 仍在审查中,因此尚未 merge 到 master 分支。因此,我现在还不能执行 git fetch/merge/pull 来获取这些更新。
我们想要做的是获取该代码,即使它仍在审查中,然后继续我们依赖于它的工作。我试过 cherry-pick ,然后根据需要工作。没有问题,直到我决定我准备好提交并推送我的代码以供审查。
我看到两个选项: 1: 暂时不要提交我的代码,只是让它藏起来。等到 Commit A 被 merge 。然后我必须以某种方式撤消我的 cherry-pick,因为 Cherry-picking 创建了一个新的提交。然后我执行 git fetch/merge/pull,unstash 我的代码,提交我的更改,然后提交我的代码。
2: 有没有办法提交我的代码并简单地让它依赖于 Commit A 被 merge ?我不能简单地使用 cherry-pick 推送我的代码,我收到一条错误消息,指出 cherry-pick 代码没有被更改。
最佳答案
如果我没记错的话(已经一年了),我相信如果你做(1)( cherry-pick ,藏起来,等到审查通过),如果你 pull 出现在 merge 的代码,然后 pop 藏,然后在新的 merge 代码之上对其进行 rebase (假设您现在有两个不同的分支),它应该保留您所做的更改,然后您可以提交这些更改。
您必须小心不要丢失精心挑选的代码(确保将其 stash 起来,否则如果您更改分支,您可能会丢失代码)。
问题可能是在代码审查期间更改了某些内容并且您有旧版本的“提交 A”。当您尝试将您的更改放在它之上(新的 merge 代码)时,您可能会遇到 merge 冲突(取决于您如何 rebase )。我建议获取 GitExtensions,以便在执行诸如存储然后 pull 之类的操作时直观地查看代码如何分支。
我建议在单独的分支上测试我上面建议的方法,并先了解它是如何工作的,然后再在您正在开发的实际代码上尝试它。
https://stackoverflow.com/questions/31528014/
相关文章:
cmake - 带有特殊字符的 custom_command ECHO
sql - 如何在 SQL MS Access 2013 中根据文本特征标准和 n+1、n+2、n+
java - 如何在不同网络的 NAT 后面的两个客户端之间建立 TCP 连接?
facebook - Graph Facebook 发生未知错误
javascript - 使用 python 电子邮件或其他模块在电子邮件中发送 Bokeh 图
java - 如何在 Spring 批处理的作业上下文 xml 文件中使用 jobExecution
asp.net - executionTimeout 发送响应