2

在没有任何本地提交的情况下拉取会删除暂存文件而不会发出警告。如何恢复这些文件?

这是一个显示该问题的示例:

~/git $ git --version 
git version 1.7.5.4

~/git $ uname -a
Darwin Joe-MacMini.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

~/git $ mkdir TESTDIR
~/git $ cd TESTDIR/

~/git/TESTDIR $ echo "hi" > file.txt

~/git/TESTDIR $ git init
Initialized empty Git repository in /Users/joe/workspace/git/TESTDIR/.git/

~/git/TESTDIR (master #%) $ git add file.txt

~/git/TESTDIR (master #) $ git status 
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   file.txt
#

~/git/TESTDIR (master #) $ ls -al
total 8
drwxr-xr-x   4 joe  staff  136 Jun 19 14:52 .
drwxr-xr-x  19 joe  staff  646 Jun 19 14:52 ..
drwxr-xr-x  11 joe  staff  374 Jun 19 14:52 .git
-rw-r--r--   1 joe  staff    3 Jun 19 14:51 file.txt

~/git/TESTDIR (master #) $ git remote add origin git@github.com:joecabezas/GitLogGroupByDate.git

~/git/TESTDIR (master #) $ git reflog
fatal: bad default revision 'HEAD'

~/git/TESTDIR (master #) $ git pull origin master
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:joecabezas/GitLogGroupByDate
 * branch            master     -> FETCH_HEAD

~/git/TESTDIR (master) $ ls -al
total 8
drwxr-xr-x   4 joe  staff  136 Jun 19 14:53 .
drwxr-xr-x  19 joe  staff  646 Jun 19 14:52 ..
drwxr-xr-x  13 joe  staff  442 Jun 19 14:53 .git
-rw-r--r--   1 joe  staff  148 Jun 19 14:53 README.md

~/git/TESTDIR (master) $ git reflog
8583332 HEAD@{0}: initial pull
4

1 回答 1

1

您可以使用 恢复丢失文件的内容git fsck --lost-found

已报告此问题,但我不认为已应用该补丁。在 git 邮件列表上发布后续内容可能会有所帮助。

于 2012-06-19T21:32:40.520 回答