Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“git commit--amend”后,旧提交会发生什么情况?_Git - Fatal编程技术网

使用“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)