Poo*_*rna 5 git git-commit git-branch
我在一个分支中有多个提交.当我推送这些提交以进行代码审查时,我们的代码审查工具会为每个提交创建一个审核.
为了避免这种情况,我想将多个提交合并到一个提交中.与此同时,我不想失去承诺的历史.是否可以仅为审查创建新分支,并将我的主分支中的所有提交合并到我的审核分支中的单个提交中?我该怎么做呢?
你不想这样做.从你如何做出承诺的意义上的实际历史是毫无价值的.适合大小的审核块非常有趣,所以只需rebase -i要将您的工作分支与可管理大小和最重要的逻辑块相结合,发布它们以便查看并忘记原始历史记录.
也就是说,要结合提交,您可以使用:
git merge --squash
Run Code Online (Sandbox Code Playgroud)
Git不会丢掉历史.它实际上并没有这样做rebase,但在这种情况下,历史记录的先前版本只能通过"reflog"访问,并且只有当你的reflogs到期时(IIRC默认为90天),它最终将无法访问,git gc会扔掉它.但是使用壁球,原始分支只是保留在那里,您仍然可以从reflog命名修订版.
但是,审核历史记录将通过审核工具合并到中央主页,没有人会看到您的原始历史记录.你可以保留它,但它与官方版本无关,无论如何都没有人会看到它.
我不知道你的评论工具,但这可能有用
git checkout review
git merge --squash master
Run Code Online (Sandbox Code Playgroud)
http://www.kernel.org/pub/software/scm/git/docs/git-merge.html