ParticleX 主题之前用了 Git Flow AVH,提交记录很丑。
这篇文章说一下怎么线性化提交历史。
1. 线性化
其实这样用 rebase --root
就可以线性化了。
如果原分支不是 master
的话要把下面的都改一下,新建一个分支是因为操作很危险。
git checkout master
git checkout -b new
git rebase --root
过程中可能会有冲突出现,处理好冲突然后继续运行。
git commit --no-edit
git rebase --continue
最后推送分支,打开 GitHub 的 Insight 就会发现,已经变成线性提交记录啦!
git checkout master
git reset new
git branch -D new
git push -f
2. 扩展
如果分支历史上有很多 Tag 的话要把所有 Tag 全部清除,然后手动添加。
如果没有很多 Tag 可以单个删除。
git push origin --delete $(git tag -l)
git tag -d $(git tag -l)
如果一个 custom
分支依赖 master
,那可以用 merge --squash
。
git checkout master
git checkout -b new
git merge --squash --allow-unrelated-histories custom
过程中可能也会有冲突出现,处理好冲突就提交推送。
git commit --no-edit
git checkout custom
git reset new
git branch -D new
git push -f
3. 后言
ParticleX 是无法做到完全线性提交的,因为有 custom
分支一直合并。
其实有一个问题就是 GitHub 记录提交时间可能有错,我在本地 git show
查看日期是旧的没有改变,但是 GitHub 上日期就变成刚提交的了,就这样吧。