git commit --amend 是否会完全覆盖旧的提交?

git commit --amend 是否会完全覆盖旧的提交?

对于本地存储库,我意外地提交了一个带有密码的文件,该文件不应该公开(它只是为了偷懒的测试目的......)。

我再次保存了文件,但没有输入密码,然后git commit --amend再次提交了文件。密码现在是不是已经消失了,还是仍然可以在存储库的某个地方找到它?

答案1

如果您在进行修改之前没有git push对远程存储库执行过,则该提交在该远程存储库中不可用。将来也不会被推送。

然而,你的当地的存储库仍然包含旧的提交,您可以通过运行来查看git reflog

然后可以使用以下命令显示实际(旧)提交:

git show HEAD@{1}

(假设您提交了某些内容,然后在没有进一步提交/分支切换的情况下对其进行了修改)

要在本地删除该提交,您应该查看git gc。当您按原样运行它时,它将删除具有一定年龄的较旧的悬而未决的提交。

相关内容