1、什么是变基
rebase(变基)翻译过来就是改变基底的意思,通过改变某个分支的基底从而实现分支的合并。
- 假设现在我们要把
dev分支合并到master
1.1、merge 合并分支
如果采用 merge 来合并,我们会执行以下命令来合并
git checkout master # 切换到master分支
git merge dev # 将dev分支合并到master分支
合并后的提交记录如下图一:
1.2、rebase 合并分支
如果采用 rebase 来合并分支,会先执行以下命令
git checkout dev # 切换到dev分支
git rebase master # 以master分支最后一次的提交作为dev分支的基底来实现变基
注:上面的 git rebase master 命令内部相当于做了以下几件事
- 首先会找到两个分支(即当前分支 dev、变基操作的目标基底分支 master)的最近共同祖先 V2
- 然后找到 dev 分支 V2 之后的每一次提交(D1,D2)相对于目标基底 master 分支 V4 的差异,并存为临时文件。
- 然后以 V4 为基底,把 D1 与 V4 的差异与 V4 合并,生成新的版本
'D1,此时'D1会指向 V4 - 然后以 V4 为基底,把 D2 与 V4 的差异与 V4 合并,生成新的版本
'D2,此时'D2会指向'D1
此时提交记录如下图二:
目标是把 dev 合并到 master 分支,所以此时还没有完成合并,我们还需要执行以下命令,才能完成合并
git checkout master # 切换到master分支
git merge dev # 将dev合并到master
因为此时的
'D1与'D2相当于是从 V4 分支分出来的,所以dev分支合并到master分支,属于快速合并,直接移动master指针指向'D2即可。
最终合并后的提交记录如下图三:
merge 与 rebase 的区别
变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。
二、ssh 免密登录
Git 会把我们输入的用户名和密码保存在 控制面板 -> 用户账户 -> 凭据管理器(管理 windows 凭据) 中。
ssh 实现免密登录需要执行以下三步,即可:
- 生成公钥与私钥
- 在 Gitee 中添加公钥
- 在本地 Git 项目中添加远程仓库 ssh 地址
三、Issue 任务协作Gitee 官方教程 - Issue 任务协作
可以将 Issue 定义为问题和待办清单、Bug 列表、讨论版等