一文教你使用git rebase

322 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

作为一名程序员,版本管理是最基础的技术了,而Git在版本管理界的地位可以说是无人不知无人不晓了,学会使用Git进行版本管理,是程序员入门的基础课。在各种面试中,尤其是一面二面中,Git基础考察可以说是100%会考察的题目。

当然了,了解了git add, git commit, git push这些最基础的命令还是不够的,出现问题时也应该知道怎么去解决,而如果掌握了正确的代码拉取和提交方法,日常中的大部分错误其实是可以避免的。

git rebase

一般使用Git拉取代码的步骤为:

如果本地有未提交的修改,首先使用stash命令将修改暂存起来:

git add .
git stash

这时候就可以拉取远端分支代码了,为了保证提交分支的「干净、整洁、明了」,要使用rebase命令,

git pull --rebase

这时候如果本地代码跟远端分支代码有冲突,就需要一一解决冲突文件,解决完之后执行:

git add -u
git rebase --continue

本地如果有暂存代码的话,通过git stash pop将代码从暂存栈取出来,此时如果有冲突的话,再一一解决冲突,最后通过git push命令将代码推送到远端分支就可以了

git rebase V.S. git merge

合并代码的时候可以使用git rebase,也可以使用git merge,两者的区别网上也可以找到一堆解释,简单明了的解释就是git rebase能保持提交历史的线性,因为它合并代码是基于rebase的节点,而不会产生分叉;git merge在合并处会生成一个新的merge commit节点:

如上图所示,分别对应git mergegit rebase的示意图。

使用哪个命令合并代码都可以,关键还是看自己的需求以及团队规范。从我个人角度讲是偏向git rebase的,不会有额外节点生成,同时每个commit也都清晰明了的线性呈现,关键是「好看」。