git不会提交,因为删除的文件不存在

Ste*_*son 6 git

似乎我已经以某种方式git进入了一个不会提交的状态,因为已删除的文件不存在:

~/src$ git status -u
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#   deleted:    release-vars.sh
#
~/src$ git commit -a
fatal: pathspec 'release-vars.sh' did not match any files
~/src$ ls release-vars.sh
ls: cannot access release-vars.sh: No such file or directory

关于如何解决这种情况的任何想法?

UpA*_*dam 0

我建议首先使用git add FILENAME和手动暂存更改,git rm FILENAME然后再进行不带该选项的提交-a。(即走git commit -m "SOME MESSAGE")

git commit -a表示自动暂存已修改和删除的文件。当您尝试从 git 中删除本地可能仍存在的文件时,这将是有问题的。

明确自己正在做的事情很少是坏事,并且可以轻松解决问题。

如果这不起作用;尝试做git reset然后尝试这个新鲜的。

提供的另一种选择git help rm如下:

如果您真正想要做的只是从索引中删除工作树中不再存在的文件(可能是因为您的工作树很脏,因此无法使用 git commit -a),请使用以下命令:

       git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
Run Code Online (Sandbox Code Playgroud)