内容准备
# 新建文件夹
mkdir git-demo
# 初始化git目录
cd git-demo
git init
# 在当前分支(main)提交内容
vim master.txt
git add .
git commit -m 'master content commit'
# 从main分支新建分支(feture1)
git checkout -b feture1
# 在当前分支(feture1)提交内容
vim feture1.txt
git add .
git commit -m 'feture1 content commit'
# 切换回(main)分支
git checkout main
# 从main分支新建分支(feture2)
git checkout -b feture2
# 在当前分支(feture2)提交内容
vim feture2.txt
git add .
git commit -m 'feture2 content commit'
# 查看分支图(如下)
git log --graph --oneline --all
将feture1合并到main
因为feture1基于main分支,所以只是简单的将main指向feture1
git checkout main
git merge feture1
将feture2变基(rebase)
因为feture2也是从master checkout出来的,而变基的意思就是将feture2基于新的分支,而非之前的,因为master已经合入了feture1,所以变基后,feture2的提交接在了feture1的后面,注意,feture2的hash变了,因为生成了新的提交
git checkout feture2
git rebase master
这也就是一条完美的提交log,而不是各种分叉的log了。