Git通过变基将提交变得更美观

几种常见的工作流

全部在主干上进行开发的主干开发工作流

Git通过变基将提交变得更美观_第1张图片
主干开发
Git通过变基将提交变得更美观_第2张图片
Git Flow
Git通过变基将提交变得更美观_第3张图片
GitHub Flow
Git通过变基将提交变得更美观_第4张图片
GitLab Flow
Git通过变基将提交变得更美观_第5张图片
GitLab Flow
Git通过变基将提交变得更美观_第6张图片
GitLab Flow

将多个提交合并为一个

  1. 首先在一个空的文件夹中使用git init创建一个空的仓库
  2. 创建多次提交
Git通过变基将提交变得更美观_第7张图片
多次提交
  1. 现在使用git log --graph查看当前提交情况
Git通过变基将提交变得更美观_第8张图片
提交情况
  1. 使用git rebase -i <哈希值>进行变基,合并的是这个哈希值对应提交之后的东西,所以选择最开始的那个提交 04a25d7dec4ef8b4428916df33f17abc91de0746
  • git rebase -i 04a25d7dec4ef8b4428916df33f17abc91de0746

  • 会跳转至一个新的页面

  • Git通过变基将提交变得更美观_第9张图片
    变基操作页面
  • 阅读命令的提示信息,这两个提交一个作为变基之后的节点,一个作为合入的节点

  • 我们把e1eba39当作合入的节点

  • 使用命令
  • 点击esc然后输入:wq!

  • 会跳转至一个写描述信息的新的页面

  • Git通过变基将提交变得更美观_第10张图片
    新的页面
  • 点击esc然后输入:wq!

Git通过变基将提交变得更美观_第11张图片
变基成功

通过git log --graph我们可以看到,之前是三个提交的,现在前面两个提交已经合为了一个

Gitlab的合并请求

环境搭建

搭建一个如图的测试环境
Git通过变基将提交变得更美观_第12张图片
测试环境

master

test1

test2

Merge commit

Git通过变基将提交变得更美观_第13张图片
合并的方式

发起一个合并请求

Git通过变基将提交变得更美观_第14张图片
将test1合入master
Git通过变基将提交变得更美观_第15张图片
合并

查看现在的分支图

Git通过变基将提交变得更美观_第16张图片
分支图

同理合入test2查看分支图

Git通过变基将提交变得更美观_第17张图片
合入test2的分支图

Merge commit with semi-linear history

Git通过变基将提交变得更美观_第18张图片
线性历史

在合并test2的时候会

Git通过变基将提交变得更美观_第19张图片
合并test2

在本地进行变基

git fetch origin
git checkout -b test2 origin/test2

检出test2之后使用git log --graph查看test2的信息

Git通过变基将提交变得更美观_第20张图片
image-20190329222401030

再使用git log --graph --all查看全部分支的信息

Git通过变基将提交变得更美观_第21张图片
全部分支信息

我们要做的就是把test2的提交移到master之后

记一下几个关键的节点

  • 父节点:2a69d1839c03e5ff2b968bbfd687a5bd673013f2

  • test2节点:28be9089b6bd914a1cac598690720a78c6419b9f

  • master节点:5bbcbdfd3bd0e25a39cd14a1b94a88890b2b0ca0

现在要做的是把test2放到master之后

所以使用git rebase -i 5bbcbdfd3bd0e25a39cd14a1b94a88890b2b0ca0

Git通过变基将提交变得更美观_第22张图片
解决冲突

根据提示输入 git rebase --continue来解决冲突

提示信息

进入1.py解决冲突

Git通过变基将提交变得更美观_第23张图片
解决冲突前
解决冲突后

将修改add至缓存区,然后使用commit提交至本地仓库

Git通过变基将提交变得更美观_第24张图片
提交变更
Git通过变基将提交变得更美观_第25张图片
变基之后的分支图

从变基之后的分支图可以看出,我们只需要把当前的HEAD当作master提交到远端就完成了变基

下面切换至master分支git checkout master使用挑拣提交拿到变基操作的提交git cherry-pick 43104b5最后使用git push origin master将master推送至远端

Git通过变基将提交变得更美观_第26张图片
变基后

通过以上操作之后发现,合并按钮还是灰色的。。。。理论上是成功了,所以,现在我也不知道咋办了。所以算了,今天就当学习变基了。


来和我一起学Git吧

欢迎关注我的公众号:zx94_11


Git通过变基将提交变得更美观_第27张图片
公众号

你可能感兴趣的:(Git通过变基将提交变得更美观)