我想修改我刚才提交的提交消息,所以我试着这样做:
git commit --amend
(正如我通常那样),但我收到了一个错误:
Unable to find modified files; please check git status
现在这很奇怪,因为我没有尝试在提交中添加/删除文件,我只想更改消息,所以无论我是否修改了文件都无关紧要。
任何人都可以解释这个错误信息(理想情况下,我如何能够通过它)?
*编辑*
Mellowcandle要求我的git状态;在这里(或多或少):
# On branch some_branch
# Your branch is ahead of 'origin/some_branch' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: static/js/someFile.js
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# some/other/file
# yet/another/file
*编辑#2 *
当我尝试git rebase -i
(使用reword
)时会出现同样的问题。
*编辑#3 *
根据GoZoner的要求,这是git config --list
(略有匿名)的输出:
user.name=My Name
user.email=email@example.com
push.default=upstream
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@github.com:someGitHubAccount/Apps.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.deploy.remote=origin
branch.deploy.merge=refs/heads/deploy
...*more branches that look similar*
答案 0 :(得分:2)
或者,您可以在当前提交的父级上执行交互式rebase
git rebase -i head~
然后选择reword
选项以更改提交消息。
答案 1 :(得分:2)
检查您是否没有在提交时触发的自定义挂钩。
答案 2 :(得分:1)
git commit --amend
将像git commit
一样工作,只是它会回收您的旧提交。所以这意味着它会期望索引中确实存在一些变化,准备提交。
因此,如果您希望包含someFile.js
,请先运行git add static/js/someFile.js
。如果您还想跟踪未跟踪的文件,请使用git add some/other/file
添加该文件。
答案 3 :(得分:1)
尝试git commit --amend --only
,如果不起作用,请尝试git stash; git commit --amend ; git stash pop
。我不确定你在这里的状态。
答案 4 :(得分:1)
git stash
。然后做git commit --amend
。
之后执行git stash pop
。
答案 5 :(得分:1)
适用于我,无论是否有经过修改的未跟踪文件。
$ echo 'a' > a; git add -A; git commit -m 'a'
$ echo 'b' > b; git add -A; git commit -m 'b'
$ git log --oneline
63f2dd1 b
a0b364a a
$ git commit --amend
$ git log --oneline
d4cdeb7 bxx # changed the commit message
a0b364a a
$ ed a # edit 'a'
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git commit --amend
$ git log --oneline
2d20e6e bxxyy # changed the commit message again
a0b364a a
$ mkdir foo; echo 'c' > foo/c
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# foo/
no changes added to commit (use "git add" and/or "git commit -a")
$ git commit --amend
ebg@ebg(31)$ git log --oneline
09c1b26 bxxyyzz
a0b364a a