我最近不得不从我们的开发中删除一项功能。分支,因为它被搁置到以后的日期。
为此,我创建了一个分支,其父母位于' dev'在第一个功能提交之前提交一个提交(第一个功能提交是来自另一个分支的压缩合并。)然后,我将所有从dev的功能提交挑选到新分支中。最后,我在dev上做了一个大的恢复提交,删除那些挑选的提交。
现在我想在dev上重新定义新分支以使其保持最新状态。如果我运行" git rebase dev",新分支的负责人将成为大型恢复,因此该功能将丢失。
使用" git rebase --strategy = our dev"将跳过功能分支中的所有提交,并显示消息"已应用:0001 ..."。
如何将功能分支重新绑定到dev上,以便将该功能上的所有提交应用于dev的头部?
也许比我在这里所描述的更好的方式来进行这个过程?
答案 0 :(得分:3)
您可以通过检查功能分支并执行以下操作来解决此问题:
git rebase --onto dev HEAD~<number of commits you care about> --force-rebase
这指示git重放您指定的提交范围,并忽略提交是否发生在dev上提交之前的某个时间点。
请注意,这将为您留下如下所示的历史记录:
<did some work> -- <reverted all of that work> -- <re-did that work>
对你来说可能不是那么有用。这里的一些其他答案详细说明了如何通过重写来获得更清晰的历史记录,具体取决于您的团队对历史重写的容忍度。
答案 1 :(得分:1)
假设你不介意改写历史记录,那么做一整件事的更好方法就是一个互动的改变:
这将
答案 2 :(得分:0)
不是专家,但如何恢复功能,然后创建分支,然后选择新分支上的功能sha1s。