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
- 打开终端,进入项目文件夹,然后在本地机器上运行
git pull
您的local master
分支应该保持最新状态remote master
。
- 接下来,您需要签出到一个新的分支,以便您可以在不中断
master
分支的情况下处理您的功能。
运行以下命令
git checkout -b my_awesome_feature_branch
现在您应该位于您的功能分支中,准备为您的项目构建那个很棒的功能。
你决定添加并设置此功能的标题样式。因此,你在分支中进行了提交
git add .
git commit -m "feature/add-title"
git push origin my-awesome-feature-branch
您的本地分支现在看起来像这样
完成第一次提交后,你继续在分支上开发你的功能,添加更多代码,让这个很酷的项目取得进展。你又进行了一次提交,现在你的分支如下所示:
当你在开发一个很棒的功能时,团队的其他成员也在开发一些很酷的功能,并且他们正在将他们的功能合并到remote master
分支中。你的队友构建了一个很酷的导航栏,并在两天内完成了它,所以它被合并到了remote master
;而你的另一位队友构建了一个很酷的页脚功能,它也被合并到了master
分支中。现在,git 树看起来像这样
不再remote master
与你的同步local master
。你的功能分支现在落后了,没有开发环境中的最新更改。你向分支添加了另一个提交,并决定将你的功能与 合并master
。
你现在需要做的是rebase
确保你的功能分支与主分支同步remote master
,并获取最新的更改。你需要运行以下流程:
git checkout master
git pull
我现在在本地分支上拥有我团队的所有变更
是时候重新定位了!
所以现在我想确保我的功能分支也与这些更改同步,所以我会重新检查它。
git checkout my-awesome-feature-branch
git rebase master
刚刚发生的事情是,你的更改已与最新master
分支集成。假设你的文件中没有任何冲突,你就可以合并到master
。如果你的分支中确实存在冲突,git 会通知你,你需要解决这些冲突。通常,当你和另一位开发人员合作开发某个功能,需要对同一个文件进行更改时,就会发生这种情况。
后续阅读:
鏂囩珷鏉ユ簮锛�https://dev.to/za-h-ra/an-introduction-to-git-rebase-a-tutorial-156f