失去了我在GIT的承诺。你能不小心删除提交?

时间:2010-03-22 21:41:01

标签: git commit

我正在使用git gui而我看不到我的分支。

我知道我今天检查了一些东西。

在我完成提交后,我更改为较早的分支,并使用分支查看器对其进行了验证。 我对早期的分支进行了更改,然后想回到我当前的分支,但我再也看不到了。 任何帮助都会很棒。

1 个答案:

答案 0 :(得分:24)

在回答你的问题时,在大多数情况下,很难失去最近的承诺。通常,对象(包括提交)仅在git gc之后被删除,如果它们不再被任何分支引用并且它们已经很老(默认为90天IIRC)。

通常您可以在reflog中找到提交。尝试以下任何一种:

git log -g

或:

git reflog

如果你能看到它,它可能有一个HEAD@{n}形式的引用,其中n是你的HEAD自丢失提交以来发生变化的次数。

您可以为它创建分支。

git branch foundit HEAD@{n}  # replace n with the correct number

然后你可以决定是否需要将它合并到另一个分支或者将其重新绑定,或者只是保留分支以供日后使用。