【发布时间】:2011-01-30 13:24:56
【问题描述】:
我正在使用 git gui,但我看不到我的分支。
我知道我今天检查了一些东西。
在完成提交并使用分支查看器验证它之后,我更改为较早的分支。 我对之前的分支进行了更改,然后想回到我当前的分支,但我再也看不到它了。 任何帮助都会很棒。
【问题讨论】:
我正在使用 git gui,但我看不到我的分支。
我知道我今天检查了一些东西。
在完成提交并使用分支查看器验证它之后,我更改为较早的分支。 我对之前的分支进行了更改,然后想回到我当前的分支,但我再也看不到它了。 任何帮助都会很棒。
【问题讨论】:
在回答您的问题时,在大多数情况下,很难意外丢失最近的提交。通常对象(包括提交)只有在 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
然后您可以决定是否需要将其合并到另一个分支或重新设置它或只是保留分支以供以后使用。
【讨论】:
git fsck 并查看您是否有任何悬空提交,但如果您有很多悬空提交,则可能更难找到正确的提交,因为您往往不得不git show 单独进行大量提交以尝试识别他们。