Git Rebase 简介:教程

2025-06-10

Git Rebase 简介:教程

一个月前,我在推特上发布了我在工作中学习的经历git rebase以及那种感觉有多么可怕。

它得到了很多对 rebasing 有类似感受的人的参与,有些人和我一样,觉得自己不理解它。

一个月过去了,我练习了很久,看了很多视频,几乎每天都在rebase,感觉没那么可怕了。所以我想写一篇教程,尽可能地按照我的理解来,希望对你们有所帮助。

Git 变基

首先要了解的git rebase是,它旨在将一个分支的更改集成到另一个分支。rebase 操作会将你在功能分支上的所有提交移到你工作期间其他团队成员所做的主提交之上。这样,你将拥有一个干净整洁的树状结构,如图所示,使用.rebasemy_awesome_feature_branch操作后你的分支在哪里?master branch

一棵干净的树

以下是如何进行 Rebase

假设你被指派去开发一个大型项目中一个非常棒的功能。这个项目名为“The Really Cool Project”。你首先要做的就是确保它与你的分支local master同步。remote master

  1. 打开终端,进入项目文件夹,然后在本地机器上运行
git pull
Enter fullscreen mode Exit fullscreen mode

您的local master分支应该保持最新状态remote master

本地和远程分支

  1. 接下来,您需要签出到一个新的分支,以便您可以在不中断master分支的情况下处理您的功能。

运行以下命令

git checkout -b my_awesome_feature_branch
Enter fullscreen mode Exit fullscreen mode

现在您应该位于您的功能分支中,准备为您的项目构建那个很棒的功能。

你决定添加并设置此功能的标题样式。因此,你在分支中进行了提交

git add .
git commit -m "feature/add-title"
git push origin my-awesome-feature-branch
Enter fullscreen mode Exit fullscreen mode

您的本地分支现在看起来像这样

产权部门

完成第一次提交后,你继续在分支上开发你的功能,添加更多代码,让这个很酷的项目取得进展。你又进行了一次提交,现在你的分支如下所示:

内容

当你在开发一个很棒的功能时,团队的其他成员也在开发一些很酷的功能,并且他们正在将他们的功能合并到remote master分支中。你的队友构建了一个很酷的导航栏,并在两天内完成了它,所以它被合并到了remote master;而你的另一位队友构建了一个很酷的页脚功能,它也被合并到了master分支中。现在,git 树看起来像这样

导航栏

不再remote master与你的同步local master。你的功能分支现在落后了,没有开发环境中的最新更改。你向分支添加了另一个提交,并决定将你的功能与 合并master

酷图像

你现在需要做的是rebase确保你的功能分支与主分支同步remote master,并获取最新的更改。你需要运行以下流程:

git checkout master
git pull
Enter fullscreen mode Exit fullscreen mode

我现在在本地分支上拥有我团队的所有变更

Git 拉取

是时候重新定位了!

所以现在我想确保我的功能分支也与这些更改同步,所以我会重新检查它。

git checkout my-awesome-feature-branch
git rebase master
Enter fullscreen mode Exit fullscreen mode

重新定基

刚刚发生的事情是,你的更改已与最新master分支集成。假设你的文件中没有任何冲突,你就可以合并到master。如果你的分支中确实存在冲突,git 会通知你,你需要解决这些冲突。通常,当你和另一位开发人员合作开发某个功能,需要对同一个文件进行更改时,就会发生这种情况。

模因

后续阅读:

鏂囩珷鏉ユ簮锛�https://dev.to/za-h-ra/an-introduction-to-git-rebase-a-tutorial-156f
PREV
用 400 行代码构建自己的 React.js Mini-React 演示介绍许可证 JSX 和 createElement 渲染光纤架构和并发模式触发更新结论
NEXT
52 杯虚拟咖啡:开发者应对不确定性的旅程