我想知道这是否可以在git中使用。所以我有主分支。我将一次又一次为功能开发创建一个侧支。当它完成后,我会将它合并回主人。现在通常,侧分支上的所有提交历史记录都将显示在主分支中。有没有办法让所有提交在主服务器上显示为一个?
答案 0 :(得分:3)
$ git checkout master
$ git merge --squash <branch>
来自docs(强调我的):
<强> - 壁球强>
--no-壁球
生成工作树和索引状态,就好像发生了真正的合并(合并信息除外),但实际上并没有 进行提交,移动HEAD或记录$ GIT_DIR / MERGE_HEAD(导致 下一个git commit命令来创建合并提交)。 这可以让你 在当前分支的顶部创建单个提交,其效果是 与合并另一个分支相同(或章鱼的情况下更多)。使用--no-squash执行合并并提交结果。这个选项 可以用来覆盖--squash。
答案 1 :(得分:2)
假设您在侧支部上进行了开发:
git checkout -b dev_branch
< do your changes, and commit them >
现在,如果您希望所有提交都显示为一次提交,则执行以下操作。如果要保留所有提交,请跳至以下步骤。
git rebase -i master
< in the interface you should now keep the first commit, and select `squash` for all the successive commits >
现在您想重新 侧分支上的主分支并删除该分支:
git checkout master
git rebase dev_branch
git branch -d dev_branch