使用 git rebase ,我得到“无事可做”

Cha*_* Wu 2 git macos vim

与标题相同,我输入“git rebase -i [commit_id]”,然后得到:

Error detected while processing /Users/My_name/.vimrc:
line    1:
E117: Unknown function: pathogen#infect
E15: Invalid expression: pathogen#infect()
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

输入回车后,成功进入vim编辑器。

  1 pick f694d12 test
  2
  3 # Rebase 3dad5af..f694d12 onto 3dad5af (1 command(s))
  4 #
  5 # Commands:
  6 # p, pick = use commit
  7 # r, reword = use commit, but edit the commit message
  8 # e, edit = use commit, but stop for amending
  9 # s, squash = use commit, but meld into previous commit
 10 # f, fixup = like "squash", but discard this commit's log message
 11 # x, exec = run command (the rest of the line) using shell
 12 # d, drop = remove commit
 13 #
 14 # These lines can be re-ordered; they are executed from top to bottom.
 15 #
 16 # If you remove a line here THAT COMMIT WILL BE LOST.
 17 #
 18 # However, if you remove everything, the rebase will be aborted.
 19 #
 20 # Note that empty commits are commented out
Run Code Online (Sandbox Code Playgroud)

我删除第 1 行“pick f694d12 test”并保存它,我刚刚得到了一份报告

Nothing to do
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

Sco*_*don 7

如果您在合并/变基期间保存了一个空文件,Git 会认为您改变了主意并且不想执行任何操作。请参阅您提供的 rebase todo 文件中的倒数第二行:

# However, if you remove everything, the rebase will be aborted.
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您可以保留提交行,但使用命令drop。您的待办事项文件将如下所示:

drop f694d12 test

# Rebase 3dad5af..f694d12 onto 3dad5af (1 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想删除最后一次提交,您可以这样做:

git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

或者:

git reset --hard 3dad5af
Run Code Online (Sandbox Code Playgroud)