场景
由于提交过程中运行的PHPMD和PHPCS检查,我经常需要修改已经受到“git add”影响的文件。
如果我修改一个已添加的文件,并重试提交,更改不会被识别,因此提交将再次失败。
然后我需要“git reset”文件以取消添加,然后重新“git add”它们并再次运行提交。
问题
是否有一种方法可以更新为提交暂存的文件,而无需取消添加并重新添加它们?
如果这是重复内容,请原谅。所有我的搜索似乎仅显示与类似单词存在不同问题的结果。
场景
由于提交过程中运行的PHPMD和PHPCS检查,我经常需要修改已经受到“git add”影响的文件。
如果我修改一个已添加的文件,并重试提交,更改不会被识别,因此提交将再次失败。
然后我需要“git reset”文件以取消添加,然后重新“git add”它们并再次运行提交。
问题
是否有一种方法可以更新为提交暂存的文件,而无需取消添加并重新添加它们?
如果这是重复内容,请原谅。所有我的搜索似乎仅显示与类似单词存在不同问题的结果。
在 Git 中,文件本身并没有被暂存,而是它们的改动被暂存。因此,当你执行 git add <filename>
命令时,暂存的是该文件的当前状态。如果你修改了该文件并希望将这些变更也添加到暂存区中,只需再次执行 git add
命令即可。
git add
命令将文件添加到提交列表中,然后进行提交。git add file
git status -s
时。MM filename
git add filename
git status -s
M filename
如其他答案和您自己所述,git add
应该有效。然而,我认为您已经有一个有效的提交(未通过某些测试),另外使用git add
和git commit
只是将新的提交添加到您的分支中。故障提交仍然存在并失败。这里有一堆解决方案可供选择。目前我想到两个例子:
git rebase --interactive HEAD~2
这将为您提供一个编辑器窗口,您可以在其中将两个提交压缩成一个。只需将第二次提交前面的pick更改为f或s并保存文件即可。
另一种方法是使用git commit --amend
这将允许您修改最后一次提交。但是,我建议阅读两者的文档。
git add
命令即可,无需重置。 - Sascha Wolfgit add
文件是完全没有问题的(我猜测您有一个预提交钩子来停止提交)。也许您的检查脚本存在一些问题。 - torek