-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
Description
介绍
rebase 就是重新定义你分支的起点,分支上的 commit 将生成对应的新的 commit , 并放在你指定的新的起点 commit 后,分支上的老 commit 将被删除。
git rebase <base>
将 base 做为你当前分支的新起点,这个 base 可以是任何一种 commit 引用( 如 ID , brand 名, tag , HEAD~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 之前,你应该问问自己:
其他人能看到这个分支吗, 这个分支对团队其他人可见吗?
如果对其它开发者可见, 你就应该要非常谨慎了。