10

我刚开始使用 Git,发现当我在分支中实现一个特性时,我会遇到一些确实需要尽快推送到主干的 bug。为此,我使用 checkout 切换回主干,进行更改并提交它们。我现在有一个没有错误的树干。

不幸的是,我的分支也需要修复这个错误。由于功能不完整,我不能只是将分支合并回主干。如何更改我的分支,以便它接收我对主干所做的更改?

如果重要的话,我正在自己开发,因此只需担心一个存储库。

我正在使用 TortoiseGit,所以特定的说明会有所帮助,但不是必需的。

4

2 回答 2

25

确保您已签出您的分支 ( git checkout branch-name) 并运行

git rebase master

并解决出现的任何冲突。

如果您不确定这些命令的作用,请尝试不使用 TortoiseGit 并使用终端。它将帮助您真正理解命令。

警告:这假定一个本地分支。如果您已共享分支,请不要运行 rebase(因为它会修改历史记录)。跑

git merge master

当你在你的另一个分支时。这具有较少的干净历史记录,但可以使用。

区别在于:

  • Rebase - 在 master 上重写分支,重放所有更改
  • 合并 - 一个正常的合并,创建一个有两个父级的提交
于 2010-09-05T12:40:06.007 回答
1

如果您的存储库对其他人不可用,那么git rebase master如上所述将起作用。

如果您的存储库是公开可用的,那么您真的不想变基,因为它可能会搞砸克隆您的存储库的其他人。在这种情况下,您希望使用git merge master将主干中的更改合并到您的功能分支中。

于 2010-09-05T12:44:34.620 回答