问题描述
|
我在一个分支中有多个提交。当我推送这些提交进行代码审查时,我们的代码审查工具会为每个提交创建一个审查。
为了避免这种情况,我想将多个提交合并到一个提交中。同时,我不想丢失提交的历史记录。是否可以创建仅用于审阅的新分支并将我的master分支中的所有提交合并到我的审阅分支中的单个提交?我该怎么做呢?
解决方法
我不知道您的审核工具,但这可能有用
git checkout review
git merge --squash master
http://www.kernel.org/pub/software/scm/git/docs/git-merge.html
, 您不想这样做。就您如何进行提交而言,实际的历史是毫无价值的。适当大小的可审核块很有趣,因此只需在工作分支中“ѭ1”即可将提交合并到大小可管理的,最重要的逻辑块中,然后将其发布以进行审核,而不必理会原始历史记录。
也就是说,要合并提交,可以使用:
git merge --squash
Git不会丢掉历史。它实际上并没有在rebase
中执行此操作,但是在那种情况下,只有通过reflog \才可以访问历史记录的先前版本,并且只有当reflog到期时(IIRC默认为90天),最终将无法访问,and4ѭ将其丢弃。但是,使用壁球时,原始分支仅保留在那里,您仍然可以从reflog中命名修订。
但是,审阅的历史记录将通过审阅工具合并到中央主记录中,并且没有人会看到您的原始历史记录。您可以保留它,但是它与正式版本无关,无论如何也不会有人看它。