我有如下分支:
L--M <-- master
/
...--A--B--C
\
D--E--F--G--H-I--J--K <-- dev(HEAD)
我想做的是通过一次提交将EFGHIJ复制到master,如下所示:
L--M--N <-- master
/
...--A--B--C
\
D--E--F--G--H-I--J--K <-- dev(HEAD)
N应包含EFGHIJ变更。
我可以使用rebase --onto命令将更改重定到master
git rebase --onto master E~1 J
如果我使用git push,master中会有 EFGHIJ 的修改,也许我需要使用 git rebase -i 命令才能把它们变成一个修改,但问题是,我看不到git rebase --into之前修改的历史记录!
我怎么能只用一次提交就提交它们呢?
2条答案
按热度按时间qacovj5a1#
git rebase --onto master E~1 J
运行后成交!
dced5bon2#
可以使用单个命令(
rebase -i
)执行此操作,但需要手动干预:您需要编辑变基的待办事项列表:如果您需要特定的/不同的提交消息,请将第一行中的
pick
更改为reword
并输入相应的消息。您对单个命令的需求是从何而来的?让我再多想一想,diff+apply的组合可能是可行的(但话又说回来,您有一个管道,它实际上是两个命令)
EDIT:diff+apply可以工作,但是你需要另一个命令(commit),所以我认为使用rebase是最简单和最安全的选择。