有时团队成员会在他们准备合并时提交他们的提交squash
。在开发过程中,做出许多提交并拥有相当活跃的git历史记录可能会有帮助。
当你需要将你的分支合并到主人当然你已经让你的同伴审查了你的同事:wink :)你可以选择将你的提交压缩成一个,这将使历史更易于管理一个庞大的团队。
你可以做到这一点通过检查你的git的日志:
git log
然后选择你要合并的提交到一个:
git rebase -i HEAD~4
%的文档您EDITOR
将被装入每次提交,它的消息,请按照编辑器提示:
pick 01d1124 Adding license
pick 6340aaa Moving license into its own file
pick ebfd367 Jekyll has become self-aware.
pick 30e0ccb Changed the tagline in the binary, too.
# Rebase 60709da..30e0ccb onto 60709da
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
一些球队遵循this particular workflow,宁愿他们的队友这样做,也有反对此的论点。
你浏览过git日志来弄清楚行和行何时消失吗?你可以发布两个父提交和合并提交你注意到消失文本? –
在这些缺失的行之一中找到一些相对独特的示例,并使用'git log -Gphrase'列出所有提交的列表,这些提交要么添加了要删除的行,要么删除该行。应该缩小搜索范围 – LightBender
[可以在使用git合并递归策略时改变无冲突覆盖?](https://stackoverflow.com/questions/45453017/can-changes-be-conflictless-overwrite-when -using-git-merge-with-recursive-stra) – max630