loading

Git - 整理标签以及整合提交

整理标签

若删除所有的标签,可以执行如下命名:

git fetch --all
git tag -l | xargs -n 1 git push --delete origin
git tag | xargs git tag -d

若删除指定的标签,可以执行如下命令,tagname 是标签名称:

git tag -d tagname
git push origin :refs/tags/tagname

整合提交

将多个提交整合为一个提交,精简提交历史记录。如下图1所示,想精简从 7cd790e6 往上的所有提交。通过 git rebase -i hash 实现,其中 hash 是提交的 hash 值。

图1

整合之前,确保当前暂存库中没有更改的文件,否则会导致 rebase 失败,因此请先清除暂存库或者将内容存入缓存中(stash)。

# 确保本地仓库的提交记录和远程仓库的提交记录保持一致,避免出现合并的麻烦情况
git fetch
git rebase -i 7cd790e6

如下图2所示,终端显示了这些历史提交,从最新的提交 2e640f87cd790e6 的前一个 3d9b04apick 表示该提交保留;squash 表示当前提交塞入前一个提交,且保留提交信息,所以在 :wq 之后会进入编辑提交信息的界面;fixup 表示与前一个提交合并但不保留提交信息。

图2

如下图3所示,这是图2的步骤结束之后进入的另一个终端页面,该页面表示如何保留提交信息,可以清除这些信息只写一条。

图3

修改提交信息之后,按下 esc -> 输入 :wq,保存退出。如下图4所示,终端列出修改信息结束此次步骤。

图4

如下图5和下图6所示,图6是图3步骤进行时的提交图形,基于蓝色分支拉出了一条粉色分支,整合之后并入蓝色最新的节点。

图5

结束了图4的步骤之后,如图6所示,本地和远程都只有一个蓝色的主分支。

图6

posted @ 2024-01-17 12:43  Himmelbleu  阅读(19)  评论(0编辑  收藏  举报