2011-05-31 57 views
5

我在一个分支中有多个提交。当我推动这些提交代码审查时,我们的代码审查工具为每次提交创建一个审查。如何将多个提交合并为一个而不丢失历史记录

为了避免这种情况,我想合并多个提交到一个提交。同时我不想失去承诺的历史。是否可以创建一个仅用于审阅的新分支,并将我的主分支中的所有提交合并到我的审阅分支中的单个提交中?我该怎么做呢?

回答

5

不想做到这一点。从你如何进行提交的角度来看,实际历史是毫无价值的。合适大小的审查块很有趣,所以只需rebase -i您的工作分支将提交结合到可管理的大小和最重要的逻辑块,发布它们以审查和忘记原始历史记录。

这就是说,在提交合并,您可以使用:

git merge --squash 

的Git不会扔掉的历史。它实际上在rebase中也没有这样做,但在这种情况下,历史版本的前一版本只能通过“reflog”访问,并且只有在reflog(IIRC默认为90天)期满时,才会最终变为不可访问和git gc将扔掉它。但使用壁球时,原始分支仍然存在,您仍然可以从reflog命名修订。

然而,审查历史将通过审查工具合并到中央主文件中,而且没有人会看到您的原始历史记录。你可以保留它,但它不会与官方的相关,无论如何,没有人会看到它。

相关问题