git rebase,就是分支能干净点(把当前分支head直接定位到被rebase的位置上),单纯用 merge 也可以。

操作步骤:

  1. featM 下开出的分支 featA。
  2. featM 更新到了 commitM。
  3. featA 有commitA1和commitA2。
  4. featA 想同步featM的代码,可以通过直接拉也就是 merge,也可以 rebase,rebase之后新被rebase的新代码会在暂存区。
  5. rebase 的前提是开出来之后最好没有推过远端。
  6. rebase 操作之后,会把commitA1和commitA2更新成新的 commit,如果有冲突,需要持续修改每次 commit 生成新的 commit,也可以针对自己的这些 commit 做丢弃或者调整顺序或者合并操作。

由于 rebase 会改变分支的历史,所以如果你之前已经把 featA 分支推送到了远端,那么在 rebase 之后,你需要用 git push -f 命令(或者 git push –force-with-lease 命令)来强制推送。但是请注意,强制推送会覆盖远端的历史,所以在多人协作的情况下,需要谨慎使用。