Git合并测试分支(最终提交)到主分支

res*_*ing 5 git merge branch final

我已经创建了一个测试分支。构建一个功能有很多微小的承诺。最后,我要进行最后完成的更改,并将其放入master分支中。
master分支不应包含测试分支的历史记录。
测试分支最终将被删除。

实现此目标的最佳方法是什么?
生成补丁并将其应用于master是最好的方法吗?
如果是这样,我如何生成/应用补丁?

Von*_*onC 5

了解Git工作流程 ” 中介绍了各种方法:

短暂的工作

在绝大多数情况下,我的清理工作只是壁球合并。

git checkout master
git merge --squash private_feature_branch
git commit -v
Run Code Online (Sandbox Code Playgroud)

更大的工作

我决定将我的更改分解为较小的更改,因此壁球过于钝了。(根据经验,我问:“编写代码审查容易吗?”)

git rebase-交互式主机

(如您在问题中所述,这不是您的选择)

宣布分行破产

也许我的功能分支存在了很长时间,并且我不得不将多个分支合并到我的功能分支中,以使其在工作时保持最新状态。历史令人费解。
抓住原始差异创建一个干净的分支是最简单的。

git checkout master
git checkout -b cleaned_up_branch
git merge --squash private_feature_branch
git reset
Run Code Online (Sandbox Code Playgroud)

现在,我有了一个包含所有更改的工作目录,而上一个分支没有任何行李。现在,我手动添加并提交更改。


rkb*_*rkb 1

git checkout master
git merge --squash testing-branch
Run Code Online (Sandbox Code Playgroud)

--squash将使您的工作集处于一种状态,就好像测试分支上的所有更改都已合并到主分支中,但不会创建任何提交。然后您就可以执行此操作git commit,所有更改都将在一次提交中进行。