【发布时间】:2020-11-09 17:37:58
【问题描述】:
我有一个破损的藏匿处:
% git stash drop
fatal: log for refs/stash is empty
% cat .git/logs/refs/stash
%
它确实出现在git log --all,不过:
% lal
* f32cdce - (HEAD -> develop, origin/develop) (44 minutes ago) <Williams, Ken>
|\
| * 05cc7d3 - (3 weeks ago) <Ken Williams>
| * 6d9c8ae - (3 weeks ago) <Ken Williams>
| | * 3fb311d - (refs/stash) (3 weeks ago) <Ken Williams>
| |/|
| | * 19be16e - (3 weeks ago) <Ken Williams>
| |/
| * ffea5e2 - (i2) (9 weeks ago) <Ken Williams>
(lal 是我对git log --graph --pretty=format:'%h -%C(yellow)%d%Creset %Cgreen(%ad) %C(bold blue)<%an>%Creset' --all 的别名。)
我做了一个git stash apply 3fb311d,所以我已经得到了存储的内容。现在,我怎样才能从树中删除 refs/stash 使其不再抱怨?
编辑
即使按照@mark-adelsberger 的建议删除了refs/stash 引用,提交也会显示在历史列表中:
% lal
* f32cdce - (HEAD -> develop, origin/develop) (31 hours ago) <Williams, Ken>
|\
| * 05cc7d3 - (3 weeks ago) <Ken Williams>
| * 6d9c8ae - (3 weeks ago) <Ken Williams>
| | * 3fb311d - (3 weeks ago) <Ken Williams>
| |/|
| | * 19be16e - (3 weeks ago) <Ken Williams>
| |/
| * ffea5e2 - (i2) (9 weeks ago) <Ken Williams>
| * 199af47 - (9 weeks ago) <Ken Williams>
...
这是在 OS X 10.15.7 上使用 Git 2.29.0(自制软件)。
【问题讨论】:
-
rm .git/refs/stash? -
@matt 我没有
.git/refs/stash文件。我不确定存储信息的存储位置。 -
我假设你也做过
rm .git/logs/refs/stash?这两个命令一起吹走你的藏匿处。 -
@matt 这似乎不是真的,即使在删除了这两个文件之后(
find .git | grep stash什么也不返回),隐藏在git lg --all中是可见的。 -
问题不在于
git lg --all中显示的内容。您要求我们解决的是git stash dropbarfs。如果你按照我的建议去做,并且停止吐槽,我的工作就完成了! :)