有时在我提交之后,我发现我遗漏了一个文件,该文件也应该包含在提交中,但实际上并没有。我经常做的是再次提交。
git add the_left_out_file
git commit "include the file which should be added in the last commit"
我认为这样做可能不是一个好主意,我想要做的只是在不添加提交的情况下包含文件。像这样的东西,
git add the_left_out_file
git add_staged_files_to_previous_commit
有可能吗?
答案 0 :(得分:383)
是的,有一个命令git commit --amend
用于修复"最后一次提交。
在你的情况下,它将被称为:
git add the_left_out_file
git commit --amend --no-edit
--no-edit标志允许在不更改提交消息的情况下修改提交。
编辑:警告 你永远不应该修改已经推送到公共存储库的公共提交,因为修改的做法实际上是从历史记录中删除最后一次提交并创建新提交,其中包含来自该提交的组合更改以及在修改时添加的新提交。
答案 1 :(得分:16)
如果您没有在远程推送更新,那么简单的解决方案是使用以下命令删除最后一次本地提交:git reset HEAD^
。然后添加所有文件并再次提交。