开启掘金成长之旅!这是我参与「掘金日新计划 · 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 merge和git rebase的示意图。
使用哪个命令合并代码都可以,关键还是看自己的需求以及团队规范。从我个人角度讲是偏向git rebase的,不会有额外节点生成,同时每个commit也都清晰明了的线性呈现,关键是「好看」。