我使用ReinH.com中git rebase -i origin/master
提到的在Git 中压缩了一些提交.
压缩一些提交后,有没有办法查看原始提交?是否有可能获得提交的"差异"?我可以获得SHA吗?
如果有可能,跑步后仍然可以git gc
吗?
Cas*_*bel 27
压缩提交的重点是重写历史记录,用一次提交替换原始提交.
也就是说,很难让事情在git中消失.获得这些提交的最简单方法是通过git reflog
.尝试git reflog <branch>
重新分配的分支的先前位置.
您应该能够在交互式rebase之前找到分支尖端的SHA1.(如果分支不再存在,请尝试git reflog show
查看reflog HEAD
.它也应该存在,只需要更多其他活动进行排序.)
一旦你拥有SHA1,你就是黄金 - 使用git log -p
或gitk
查看提交并查看它们的差异.(如果你想用它做很多事情,那就在那里创建一个分支,这样你就不必一遍又一遍地粘贴SHA1.)
在运行之后git gc
,这仍然是可能的,只要你压扁这些提交已经很长时间了.gc
只修剪可达超过一定年龄的悬挂物体.
如果可以从reflog中的任何内容访问提交,则认为提交是可到达的,并且reflogs需要90天才能到期,因此您通常可以依赖那些原始提交挂起三个月.