使用“git commit--amend”后,旧提交会发生什么情况?
假设我们有分支机构:使用“git commit--amend”后,旧提交会发生什么情况?,git,Git,假设我们有分支机构: A是的,它存在,如果你知道它的sha,你可以做 git show <SHA> 关于垃圾收集器,又名 在当前存储库中运行大量内部管理任务,例如压缩文件修订(以减少磁盘空间并提高性能)和删除以前调用git add创建的不可访问对象 鼓励用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的操作性能 一些git命令可能会自动运行git gc;有关详细信息,请参见下面的--auto标志。如果您知道自己在做什么,并且只想永久禁用此行为而无需进一步考虑,只
A是的,它存在,如果你知道它的sha,你可以做
git show <SHA>
关于垃圾收集器,又名
在当前存储库中运行大量内部管理任务,例如压缩文件修订(以减少磁盘空间并提高性能)和删除以前调用git add创建的不可访问对象
鼓励用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的操作性能
一些git命令可能会自动运行git gc;有关详细信息,请参见下面的--auto标志。如果您知道自己在做什么,并且只想永久禁用此行为而无需进一步考虑,只需执行以下操作:
git配置--global gc.auto 0
根据官方文件,git commit--amend
是对历史的重写:
您需要小心使用这种技术,因为修改会更改提交的SHA-1。这就像一个非常小的回扣——如果你已经推动了,就不要修改你最后的承诺
资料来源:
所以要回答你的问题:
C(从字面上说)会发生什么
它仍然存在,实际上它已经被隐藏了(git stash
)。您可以使用此处确定的流程将其取回:
最后的评论似乎非常重要;git会在没有你同意的情况下自动“垃圾收集”?!请参阅我的上一次编辑,通常请参阅git-gc
手册页
A -- B -- C'
\
\-- C (this commit is unreachable, so it's not shown in normal git logs)