在 "git add" 之后修改文件
Modifying a file after "git add"
场景
由于在提交期间运行 PHPMD 和 PHPCS 检查,我经常需要修改已经受到 "git add" 影响的文件。
如果我修改了添加的文件并重试提交,则无法识别更改,因此提交将再次失败。
然后我需要 "git reset" 文件以取消添加它们,然后重新 "git add" 它们并再次运行提交。
问题
有没有办法更新为提交准备的文件,而不必取消添加并重新添加它们?
如果重复,我深表歉意。我所有的搜索似乎只显示具有相似词的不同问题的结果。
您只需再次 git add
文件并提交。
Is there a way to update the files that are staged for a commit,
without having to un-add and re-ad them?
无需取消添加并重新添加它们
再次添加该文件
git add file
当您看到 git status -s
时修改任何添加的文件后
MM filename
所以当你再次添加它时它会变成
git add filename
git status -s
M filename
在 git 中,文件(本身)未暂存,更改已暂存。因此,当您执行 git add <filename>
时,暂存的是该文件的 当前状态 。如果您更改文件并希望也添加这些更改,您只需执行另一个 git add
.
如其他答案和您自己所述,git add
应该有效。但是,我认为您已经有一个有效的提交(没有通过一些测试)并且使用另一个 git add
和 git commit
,您只是向您的分支添加一个新的提交。错误的仍然存在并且失败了。您可以在此处执行多种解决方案。目前只有两个例子进入我的脑海:
git rebase --interactive HEAD~2
这为您提供了一个编辑器 window,您可以在其中将两个提交合并为一个。只需将第二次提交前的 pick 更改为 f 或 s 并保存文件。
另一种方法是使用 git commit --amend
这将允许您修改上次提交。但是,我建议阅读两者的文档。
场景
由于在提交期间运行 PHPMD 和 PHPCS 检查,我经常需要修改已经受到 "git add" 影响的文件。
如果我修改了添加的文件并重试提交,则无法识别更改,因此提交将再次失败。
然后我需要 "git reset" 文件以取消添加它们,然后重新 "git add" 它们并再次运行提交。
问题
有没有办法更新为提交准备的文件,而不必取消添加并重新添加它们?
如果重复,我深表歉意。我所有的搜索似乎只显示具有相似词的不同问题的结果。
您只需再次 git add
文件并提交。
Is there a way to update the files that are staged for a commit, without having to un-add and re-ad them?
无需取消添加并重新添加它们
再次添加该文件
git add file
当您看到 git status -s
MM filename
所以当你再次添加它时它会变成
git add filename
git status -s
M filename
在 git 中,文件(本身)未暂存,更改已暂存。因此,当您执行 git add <filename>
时,暂存的是该文件的 当前状态 。如果您更改文件并希望也添加这些更改,您只需执行另一个 git add
.
如其他答案和您自己所述,git add
应该有效。但是,我认为您已经有一个有效的提交(没有通过一些测试)并且使用另一个 git add
和 git commit
,您只是向您的分支添加一个新的提交。错误的仍然存在并且失败了。您可以在此处执行多种解决方案。目前只有两个例子进入我的脑海:
git rebase --interactive HEAD~2
这为您提供了一个编辑器 window,您可以在其中将两个提交合并为一个。只需将第二次提交前的 pick 更改为 f 或 s 并保存文件。
另一种方法是使用 git commit --amend
这将允许您修改上次提交。但是,我建议阅读两者的文档。