1 新建git目录并初始化

1.1 新建目录和文件

git merge和git rebase异同_初始化

index.html内容

<html>
<p>This is P1 ...</p>
<p>This is P2 ...</p>
</html>

1.2 使用git进行初始化并查看状态

git merge和git rebase异同_html_02

2 前期准备

2.1 master分支上提交文件

git merge和git rebase异同_初始化_03

2.2 创建user1分支

git merge和git rebase异同_html_04

2.3 在user1分支上作修改并提交

修改内容:index.html

<html>
<p>This is P1 ...</p>
<p>This is P2 ...</p>
<p>This is P3 ...</p>
</html>

git merge和git rebase异同_初始化_05

2.4 分别在master分支和user1分支上查看文件内容

user1分支:

git merge和git rebase异同_html_06

master分支:

git merge和git rebase异同_html_07

2.5 查看提交日志

git merge和git rebase异同_html_08

3 使用git merge合并分支内容

将user1分支合并到master分支

git merge和git rebase异同_git_09

查看状态

git merge和git rebase异同_html_10

4 修改master分支并提交

<html>
<p>This is P1 ...</p>
<p>This is P2 ...</p>
<p>This is P3 ...</p>
<p>This is P4 ...</p>
</html>

git merge和git rebase异同_html_11

5 使用git rebase合并分支

git merge和git rebase异同_git_12

6 重点来啦:git rebase和git merge有啥不一样?

6.1 首先看下提交后的日志情况

6.1.1 git merge

git merge和git rebase异同_html_13

6.1.2 git rebase

git merge和git rebase异同_html_14

6.2 分析

现在我们可以看一下用git merge和用git rebase所产生的历史的区别:

git merge和git rebase异同_html_15

7 总结

  1. 可以看出merge结果能够体现出时间线,但是rebase会打乱时间线。
  2. 而rebase看起来简洁,但是merge看起来不太简洁。
  3. 最终结果是都把代码合起来了,所以具体怎么使用这两个命令看项目需要。