我想知道为什么我的 git 别名被卡住以及它是如何导致变基的。
重现步骤:
git config --global alias.am "commit --amend"
我可以看到别名添加了:
git config --global -e
[alias]
am = commit --amend --no-edit
创建新的测试仓库:
> git init
> git am
Ctrl+ c, Ctrl+c
什么都没有发生,所以我必须手动关闭它。在这种情况下,预期的结果将是fatal: You have nothing to amend.
,因为没有提交。但是发生的事情是 git 现在处于 rebase 模式:(master|AM/REBASE)
在带有提交的 repo 中运行时,预期结果是打开我的默认 git 编辑器,以便我可以编辑提交消息,但会发生上述相同的意外行为。
问题
为什么我的 git am 别名被卡住了,它是如何让我陷入变基的?
我试过的
我猜我的 git 别名在某种程度上有问题,它会导致它启动,git commit --amend
但在某种程度上它无法启动编辑器。而且由于 git commit --amend 可能会在后台执行 rebase 以执行其操作,因此当我强制它中止时它会处于该状态吗?
但是,我尝试添加 --no-edit 无济于事,所以它似乎不是编辑器错误..
这个问题导致我不小心做了 agit rebase --abort
并丢失了一些本地非分阶段的更改。
系统
我在使用 Git Bash 的 Windows 10 上。
我已经使用 emacs 和 notepad 作为我的默认 git 编辑器进行了测试,两者的结果相同。