Git 变基(rebase)、ssh 免密登录、Issue 任务协作

114 阅读2分钟

1、什么是变基

rebase(变基)翻译过来就是改变基底的意思,通过改变某个分支的基底从而实现分支的合并。

  • 假设现在我们要把dev分支合并到master image.png

1.1、merge 合并分支

如果采用 merge 来合并,我们会执行以下命令来合并

git checkout master  # 切换到master分支
git merge dev  # 将dev分支合并到master分支

合并后的提交记录如下图一image.png

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

此时提交记录如下图二

image.png 目标是把 dev 合并到 master 分支,所以此时还没有完成合并,我们还需要执行以下命令,才能完成合并

git checkout master  # 切换到master分支
git merge dev # 将dev合并到master

因为此时的'D1'D2相当于是从 V4 分支分出来的,所以dev分支合并到master分支,属于快速合并,直接移动master指针指向'D2即可。

最终合并后的提交记录如下图三

image.png merge 与 rebase 的区别

变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。

二、ssh 免密登录

Git 会把我们输入的用户名和密码保存在 控制面板 -> 用户账户 -> 凭据管理器(管理 windows 凭据)  中。
ssh 实现免密登录需要执行以下三步,即可:

  • 生成公钥与私钥
  • 在 Gitee 中添加公钥
  • 在本地 Git 项目中添加远程仓库 ssh 地址

三、Issue 任务协作Gitee 官方教程 - Issue 任务协作

可以将 Issue 定义为问题和待办清单、Bug 列表、讨论版等