2011-09-01 32 views
4

是否有可能在git中失去工作?假设我所有的工作都已经完成,并且我没有运行git gc。 如果我尝试一些“时髦的命令”(NOT rm -rf .git),并且我的项目发生了一些奇怪的事情,我可以从中恢复吗? 有什么特别的我应该避免做?或者在尝试之前将其他地方的软件库克隆?我可以在git中失去承诺的工作吗?

回答

6

你用git所犯的大多数错误都可以通过使用reflog来恢复。一个例外是删除你的分支,因为当然删除了相关的reflog。如果发生这种情况,您可能仍然能够通过查看HEAD的reflog来查找分支,但是如果您没有在一段时间内检查分支(或者从未检出分支的最新提示),那么它会赢得'不要在那里。但即使如此,您仍然可以尝试使用git fsck --lost-found来查找您的悬挂提交,并通过它们拖拽以找到可能的分支提示。

正如您已经指出的那样,如果您运行破坏.git目录的东西,则所有投注都将关闭。

+1

如果你在删除一个分支之后立即意识到,你并不想删除它,只需看一下'git branch -d'的输出:“删除分支branchname(是2cbda72)” – MatrixFrog