Git没有提交暂存的更改

5
在删除/修改文件后,我使用git add -A来暂存它们,也尝试过之后执行git add -u。当我提交更改时,我发现git实际上没有提交任何更改。Git状态仍然显示文件已经被暂存,而执行git push命令后,提示everything is up to date

这可能是什么原因呢?Git状态清楚地显示了删除和修改的内容。

确切使用的命令:

git add -A

git status - 显示所有更改都已被暂存

git commit -m 'message here'

什么也没有提交,所以我尝试了git add -u

再次使用相同的命令进行提交,但仍然没有提交。在暂存文件后,这是git status的输出:

enter image description here

1
你需要提交。Git commit -m "你的信息" - Christoph
@Christoph 他说他已经提交了。但是暂存区在那个时候似乎是空的,因此没有提交记录。 - Romain Valeri
@NoorAShuvo 我也尝试过那个方法。 - kag359six
2
请展示使用的确切命令及其输出? - evolutionxbox
1
“and their outputs” 意味着 git status 的实际输出,如果可能的话,而不仅仅是“所有更改都已按预期暂存”。 - Useless
显示剩余6条评论
4个回答

1

你尝试过使用文件或目录的具体名称吗?我经常使用 git add .git add ../something.txt,从未遇到过问题。我只在切换分支时遇到过一些问题。

如果仍然无法解决问题,我建议尝试创建一个新的本地仓库。

希望这可以帮助你。


0

是的,使用-u参数会出现这种预期行为:

仅在索引中更新已有条目。这将删除以及修改索引条目以匹配工作树,但不添加新文件。

(强调是我的)

如果您没有已经添加这些文件,则它们不会被使用-u暂存。这是一种告诉git“自上次添加以来我已经再次修改了这些文件”的方法。

为什么首先要使用该参数?您试图实现/避免什么?


我正在尝试提交已删除和修改的文件,但是git完全忽略它们。它们在.gitignore中也不存在。执行git add -A会按预期暂存所有内容,但是git commit -m 'message here'实际上并没有提交任何内容。老实说,我使用了那个参数,因为在某个地方针对这个特定问题推荐了它,并且它确实起作用了一次。但是这个问题又出现了。 - kag359six

0
删除/修改文件后,我通过执行git add -A来将它们暂存,我也尝试过git add -u。
只有在使用旧版本的Git(>2.0)时才需要使用git add -A && git add -u。在Git >2.0中,默认情况下为git add是git add -A

https://github.com/git/git/blob/master/Documentation/RelNotes/2.0.0.txt

当在子目录中运行git add -ugit add -A时,如果没有在命令行上指定要添加的路径,则它们将对整个树进行操作,以保持与git commit -a和其他命令的一致性(这些命令过去只对当前子目录进行操作)。
如果您想将操作限制在当前目录,请使用git add -u .git add -A .
自Git版本2.0.0以来:git add <path>现在与git add -A <path>相同
因此,只需使用以下命令:
git add .

当我提交更改时,我注意到git实际上没有提交任何更改。
看起来你没有提交任何更改。
你还提到:...它们在.gitignore中也不存在。 运行此命令以查看文件是否被忽略:
git check-ignore * -v 

1
感谢您的回答。文件并没有被忽略。我通常也会使用 git add . ,但是在运行 git commit -m 'message' 后,git 仍然不提交任何内容。但是当我检查状态时,它清楚地显示所有已暂存的文件都是绿色的。 - kag359six
尝试使用 git commit --verbose 命令。输出是什么? - CodeWizard

-1

使用双引号,我也遇到了同样的错误。

git commit -m "your msg"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接