【发布时间】:2018-10-03 08:13:44
【问题描述】:
让我们有一个 git master 分支,并在某个时刻让 fork 分支发布(发布分支将被称为 R1)。有时我需要向他们(master 和 R1)推送提交。通常我在 master 分支上工作,完成后我对其进行测试,挑选到 R1,在那里测试并推送到它们。
我想在 R1 提交中引用 master 分支。这是由cherry-pick -x 完成的。但是,这种方法仅在我推送到主分支然后从主分支到 R1 时才有效。假设测试花费了太多时间,我希望 master 和 R1 尽可能多地同步(我想最小化推送之间的时间间隔),所以我想同时推送。通过这种方式,我无法获得参考(cherry-pick 中的 -x),因为在 R1 中进行 rebase 时哈希会改变(不能使用合并)。 有什么办法可以自动化这个,所以我会在 R1 描述中有正确的散列?像哈希预测之类的东西?
【问题讨论】:
-
这里真正的问题是您的工作流程,它似乎有机会在功能分支中进行提交,然后再将该提交挑选回 master。如果您有适当的合并或变基工作流程,您可能根本不必使用cherry-pick。我的投票是修复您的工作流程,然后除非绝对必要,否则避免使用cherry-pick。
-
实际上我无法推送到 R1 然后返回到 master。归根结底,这不会解决我的问题,我仍然需要对其进行测试并将其推送到两个分支,并在 R1 中引用主提交。
-
你不能真的用cherry-picking来做到这一点,因为cherry-picking会创建一个new提交。该提交可能在功能上与原始提交相同,但是 SHA-1 不同。如果你想共享同一个提交,那么你需要合并或变基之类的东西。
-
我认为我们不在同一个页面上。我根本不想共享相同的提交,我只想在 R1 的 commit2 中引用对 master 的 commit1。如果您将 commit1 提交到 master 分支,然后使用 -x to R1 对其进行樱桃挑选,您将在描述中得到类似 cherry pick from commit 98073c13... 的内容,这正是我想要的有
-
所以你说你想将提交推送到
master,然后在master上重新设置R1,然后有人会自动从master重新提交提交添加了参考消息?对吗?
标签: git git-rebase cherry-pick git-hash