Git Rebase小练习

 

一、 前言

  首先感谢孟宁老师课上的指导,本文参考孟老师的文章:《五大场景玩转Git,只要这一篇就够了》。本文旨在实现下图的任务练习。

 

  项目主要有两条分支:master和branch,要求branch分支的提交 A 和 B 在本地存在过,但并不出现在远程网络图中。

二、 任务流程

1、 Gitee新建项目

  如图所示,点击新建仓库。

2、 克隆项目

  我们可以在终端使用git clone指令将远端的代码和分支信息克隆到本地。

  但本文选择在VScode上克隆存储库。

  如图点击克隆存储库。

  输入gitee上创建的库的URL链接,将库克隆到本地。

3、 创建分支

  在VScode终端使用git branch指令为项目创建分支,这里新的分支命名为dev。使用git checkout指令切换当前分支,默认分支是master,现切换到dev分支。

4、 对项目文件的修改和提交

  按流程图,每个分支都进行了对项目文件的修改和提交,这里我们可以使用git add和git commit指令进行修改和提交。

  Master分支上:

  进行三次提交。

  Dev分支上:

  也进行了三次提交,分别命名为A、B、C。

5、 保持本地仓库与远程代码同步

  使用git pull指令使本地仓库与远程仓库代码和分支同步。

6、 rebase合并

  使用git rebase指令能在完成工作后能重新整理提交记录,使得log记录更容易回顾参考。

  这里的指令是git rebase -I HEAD^^^,指定重新整理当前分支HEAD的之前三个节点。这时会打开命令行文本编辑器如下:

  我们删除A,B版本,然后:wq保存退出,Vscode打开冲突文件会显示如下(因为C是A、B基础上修改来的):

  根据提示保留更改,为了解决冲突我们可以重新提交C文件:

7、 合并,推送,查看日志

  使用git merge将分叉的分支合并,git push将本地分支代码推送到远程代码仓库。

  使用git log查看提交日志:

 

  可以看到A、B曾在本地存在过,但是在远程提交日志内没有出现。

  任务练习完成。

三、 一些思考

  在一些课程设计和工程实践的多人项目中也接触过git这一工具,但是更多情况下,只是使用简单的push、commit和pull指令,回头看了一下自己提交的代码显得十分凌乱和琐碎,不同功能模块并没有分开提交的版本,让代码跟踪变得十分困难。

  在学习了孟宁老师的文章后,对以后团队项目的管理有了更好的处理方法。一方面是代码提交要按照功能拆分成相对独立的提交,一次提交对应一个功能点;另一方面多关注commit log message,使用git rebase整理记录,使得后续代码跟踪更轻松。

  关于git rebase和merge的使用可参考:https://www.jianshu.com/p/4079284dd970

posted @ 2021-04-01 19:21  Joffery  阅读(238)  评论(0编辑  收藏  举报