理解和使用git rebase

时间:2015-05-18 06:45:42

标签: git github rebase

我已经在git rebase上阅读了好几个月了。但是,在我的日常开发工作中,我仍然不习惯使用它。就像我理解合并版本控制工具的方式一样,有没有一种方法可以理解git中的rebase并使用它来利用它提供的有用性?

1 个答案:

答案 0 :(得分:1)

VonC的链接非常好,但它可能只会为进一步阅读做出贡献。

要记住的第一点是rebase主要用于您的私人开发分支。 Rebase总是重写历史记录,因此修改已经发布和合并并被其他人使用的分支机构是邪恶和粗鲁的。

有两个主要用例。

一。将您的开发分支移动到上游提交

git checkout feature
git rebase master

结果:

  X (feature)                 X (feature)
 /                 =>        /
X-X-X-X (master)      X-X-X-X (master)

两个。使用交互式rebase

清理dev分支的历史记录
git checkout feature
git rebase -i master

历史:

      X (feature)
     /
    X             =>        X (feature)
   /                       /
X-X (master)            X-X (master)

git rebase -i启动一个编辑器,并在你的分支上提供一个提交列表。每个前面都有一个默认的pick操作。如果你保留pick什么都不会改变。您可以将pick替换为其他操作。

  • squash提交上一个,提示更改说明
  • 先前提交的
  • fixup,自动保留其原始描述
  • edit提交的内容和说明
  • 等等

最好的学习方法就是去做。