我们有三个分支:prod,dev,next。
我们的一个功能是延迟到下一个版本,因此在dev分支中间的一个提交需要移动到下一个分支。我该怎么办?
P.S。我想移动提交而不是复制。
答案 0 :(得分:2)
您无法移动提交,但可以使用git cherry-pick
复制提交,并使用git revert
将其删除。
首先,获取提交的提交ID。我们说它是abc123。
要将提交复制到下一个,请检查下一个分支和樱桃选择。可能存在冲突,按照git的指示处理它们。
要从dev中删除提交,请检出dev并将其还原。
这将记录撤消abc123的新提交。
您还可以使用git rebase -i abc123^
代替revert
从历史记录中完全删除提交。对于这种情况来说这太过分了。由于大概该分支已经过测试和开发,因此您希望保留通过该过程存在的该提交的记录。使用rebase
也会将所有提交ID从abc123转发,这将要求所有人git pull --force
,并且如果可能的话通常应该避免。