Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

git 实践之 —— 避免 merge

  git 中的 merge 操作用起来好像非常简单,即使是 git pull 默认也是 merge。但我觉得 merge 是非常复杂的操作,尽管它被 git 包装成了一堆傻瓜式的操作,我还是建议尽可能地不 merge。merge 是弊大于利的,使用 rebase 代替 merge 会让项目变得更清晰。
  经常看到一些满是 merge 的 PR,对这种 PR 我是拒绝的,因为太脏了。看着项目的 commit 列表里全是 merge 就根本不知道这个项目到底在搞什么鬼。
  merge 除了脏以外,还会带来更大的问题。如果一个 PR 中存在 merge,那么在 PR 的 files changed 中就会看到 merge 目标的代码。这会给代码 Review 的工作代码困扰。因为代码 Review 时通常是看一个 PR 修改了哪些代码,现在 PR 中满的别人的代码要如何 Review?而且代码 Review 时可能按一个个 commit 来看,如果遇到一个 merge 的 commit,谁知道你解了什么冲突。
  为何会产生这些 merge 呢?因为很多开发者对 git 的机制不熟悉造成的。在开发完一个功能后为了避免和主分支冲突于是就去 merge 主分支,然后在 PR 的 Review 以及修改之后又为了避免和主分支冲突而 merge 了主分支。反复如此就产生了一堆脏 merge。
  解决这个问题就是永远不要 merge 主分支,而是 rebase 主分支。
git fetch origin master # git merge origin/master # 不要这么干 git rebase origin/master # git pull origin master # 不要这么干 git pull --rebase origin master
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^