使 `git rebase -i` 存在并应用从下到上的提交

问题描述 投票:0回答:1

出于不完全清楚的原因,Git 以与通常顺序相反的方式显示交互式变基待办事项列表(由

git rebase -i
生成)中的提交:首先显示最祖先的提交(通常是最旧的提交),而不是最后。

为了与

git log
通常的排序顺序保持一致,我可以用相反的方式得到它吗?也就是说,我希望待办事项列表以默认排序顺序
git log
显示,并且我希望待办事项列表在我编辑后仍能被 Git 理解,而不必手动重新反转它.

git rebase git-interactive-rebase
1个回答
4
投票

您可以使用自定义

sequence.editor
配置:

git -c sequence.editor='tac "$1" > "$1.reverse" && "$(git config core.editor || echo "${GIT_EDITOR:-vim}")" "$1.reverse" && tac "$1.reverse" > "$1"' rebase -i ...

为此配置可重用别名并使用它很容易:

git config alias.revbase "!git -c sequence.editor='tac \"\$1\" > \"\$1.reverse\" \
&& \"\$(git config core.editor || echo \"\${GIT_EDITOR:-vim}\")\" \"\$1.reverse\" \
&& tac \"\$1.reverse\" > \"\$1\"' rebase -i"
git revbase @~10
© www.soinside.com 2019 - 2024. All rights reserved.