Skip to content

让 git rebase 的概念终结于此吧 #18

@godkun

Description

@godkun

介绍

rebase 就是重新定义你分支的起点,分支上的 commit 将生成对应的新的 commit , 并放在你指定的新的起点 commit 后,分支上的老 commit 将被删除。

git rebase <base>

base 做为你当前分支的新起点,这个 base 可以是任何一种 commit 引用( 如 IDbrand 名, tagHEAD~N )。

rebase 的目的

rebase 的主要目的就是保持 project history 在一条线上是没有分叉的。

rebase 是一个常用的方法, 用来集成上流的 change 到我的本地仓储。换句话来说,rebase 就像是在说:我想将我的修改 base 到每个人做的 commit 之后。

举例说明

比如当前分支为 dev ,然后我执行:

git rebase master

命令解释

一个最关键的一点,就是 rebase 是变基的意识。rebase master 是以 master 为 base ,dev 分支把补丁打到 master 后面。

此命令就是将 matser 和我的 dev 分支合并,并且干掉没有用的 commitId ,让最新的 commmitId 以我的最新提交的为准。

当我 push 后。matser 指向了我的 commitId ,我的 commitId 将作为目前最新的 commitId ,成为基准。

git rebase 黄金法则

永远不要在一个公共的分支中使用 rebase 在运行 git rebase 之前,你应该问问自己:

其他人能看到这个分支吗, 这个分支对团队其他人可见吗?

如果对其它开发者可见, 你就应该要非常谨慎了。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions