如何在使用" git merge"时仅合并没有提交日志的更改

时间:2015-01-21 06:32:33

标签: git git-merge

我有一个主分支,我为我的日常工作签出了一个名为test_branch的新分支。我在test_branch中做了很多冗余的“git commit”,所以test_branch中有很多历史提交日志。当我将test_branch合并到master时,我不希望这些历史记录日志合并到master。如何合并源文件呢?

3 个答案:

答案 0 :(得分:3)

你这样做:

git checkout master
git merge --squash test_branch

这为master提供了一个新版本,在提交时它不会是合并。

答案 1 :(得分:0)

git merge命令合并提交。它不合并文件。 test_branch上的开发路径将成为项目历史记录的一部分。如果您对它不满意,您应该在该分支上执行rebase -i并编辑以清理历史记录,使其看起来像您想要的那样,然后合并分支。如果您不关心历史记录,可以使用test_branchgit merge --squash上的所有提交压缩到一个提交到主服务器上。然而,这将摧毁细粒度的历史,并不会真正获得任何东西。

许多版本控制系统认为分支与主开发线完全分开,主分支在合并后唯一可以看到的是合并本身。使用git,由于其分支的轻量级特性,分支合并到主分支的开发历史也将是可见的。

答案 2 :(得分:0)

你想"壁球"或" rebase"你的提交。您可以在此处阅读有关如何执行此操作的详细信息:Squash my last X commits together using Git