场景四:Git Rebase整理提交记录

一般我们在软件开发的流程中,开发者要把自己修改的代码根据功能拆分成一个个相对独立的提交,一个提交对应一个功能点,而且要在对应的commit log message里描述清楚。在合并和推送之前检查修改提交记录时常需要进行此操作。

场景四实际就是在场景三团队项目工作流程中增加一步“Git Rebase”,即在mybranch分支上完成工作之后,为了让我们更容易回顾、参考log记录,用git rebase命令重新整理提交记录。

注意:不要通过git rebase对任何已经提交到远程仓库中的提交记录进行修改。

git rebase命令的格式大致如下:

git rebase -i [startpoint] [endpoint]

 其中-i的意思是--interactive,即弹出交互式界面让用户编辑完成合并操作,[startpoint] [endpoint]指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支的HEAD。

一般只 指定[startpoint],即从某一个提交节点开始,可以使用HEAD^^,HEAD~100、commitID或者commitID的头几个字符来指定,比如下面的命令指定重新整理HEAD之前的3个提交节点。

git rebase -i HEAD^^^

 我们先用git log查看一下以往版本的提交记录。

场景四:Git Rebase整理提交记录_第1张图片

 再执行git rebase -i HEAD^^^(重新整理HEAD之前的3个提交节点)

场景四:Git Rebase整理提交记录_第2张图片

如果我们删除了Listener3版本,即删除了"pick d2ac03a Listener3"这一行,如下图所示。

场景四:Git Rebase整理提交记录_第3张图片

 然后输入:wq按Enter键保存退出,可以看到以下提示。场景四:Git Rebase整理提交记录_第4张图片

 这时用VSCode打开冲突文件,冲突提示如下图所示。场景四:Git Rebase整理提交记录_第5张图片

 可以根据提示选择保留哪个更改,也可以直接编辑文件去掉提示信息。场景四:Git Rebase整理提交记录_第6张图片

 解决冲突后需要将修改后的文件存入暂存区,最后执行以下命令完成整理。

git add .
git rebase --continue

 删除的Listener3版本的内容很可能会合并到Listener4版本,这时往往需要重新修改Listener4版本的提交日志消息,因此在完成操作之前需进入文本编辑器修改Listener4版本的提交日志。保存退出后即可完成整理操作。

场景四:Git Rebase整理提交记录_第7张图片

 

 这时查看提交日志可以发现Listener3版本已经不存在了。

场景四:Git Rebase整理提交记录_第8张图片

 最后,和场景三的第四步一样,先切换回master分支,将最新远程origin/master分支同步到本地存储库,再合并mybranch分支到master分支,推送到远程origin/master分支之后即完成了一项开发工作。

场景四:Git Rebase整理提交记录_第9张图片

 查看提交日志

场景四:Git Rebase整理提交记录_第10张图片

 在gitee中查看提交分支

场景四:Git Rebase整理提交记录_第11张图片

 

你可能感兴趣的:(Git,git,github)