在变基期间退出后无法访问本地 Git 存储库
Unable to access local Git repo after quitting during a rebase
我的虚拟机在 git rebase
期间关闭,现在项目目录根本看不到 Git 存储库。当我执行 git status
时,我得到以下信息:
vagrant@localhost /var/www/crmpicco $ git status
fatal: Not a git repository (or any of the parent directories): .git
我尝试重新初始化存储库,但没有效果:
vagrant@localhost /var/www/crmpicco $ git init
Reinitialized existing Git repository in /var/www/releases/20141013104615/.git/
vagrant@localhost /var/www/crmpicco $ git status
fatal: Not a git repository (or any of the parent directories): .git
在我的 .git 目录中,我有以下内容:
vagrant@localhost /var/www/crmpicco/.git $ ls -all
total 92
drwxr-xr-x+ 9 vagrant vagrant 4096 Jul 8 09:26 .
drwxr-xr-x+ 18 vagrant vagrant 4096 Jul 7 18:00 ..
drwxr-xr-x+ 2 vagrant vagrant 6 Oct 13 2014 branches
-rw-rw-r--+ 1 vagrant vagrant 293 May 6 16:45 COMMIT_EDITMSG
-rw-rw-r--+ 1 vagrant vagrant 637 Jul 8 09:26 config
-rw-r--r--+ 1 vagrant vagrant 73 Oct 13 2014 description
-rw-rw-r--+ 1 vagrant vagrant 4157 Jul 7 17:56 FETCH_HEAD
-rw-rw-r--+ 1 vagrant vagrant 0 Jul 7 18:00 HEAD
drwxr-xr-x+ 2 vagrant vagrant 4096 Oct 13 2014 hooks
-rw-rw-r--+ 1 vagrant vagrant 0 Jul 7 18:00 index
drwxr-xr-x+ 2 vagrant vagrant 20 Oct 13 2014 info
drwxr-xr-x+ 3 vagrant vagrant 28 Oct 13 2014 logs
drwxr-xr-x+ 259 vagrant vagrant 8192 Apr 29 09:31 objects
-rw-rw-r--+ 1 vagrant vagrant 41 Jul 7 17:56 ORIG_HEAD
-rw-r--r--+ 1 vagrant vagrant 3442 Oct 13 2014 packed-refs
drwxrwxr-x+ 2 vagrant vagrant 4096 Jul 7 18:00 rebase-apply
drwxr-xr-x+ 5 vagrant vagrant 55 Jul 7 16:22 refs
我想保留 git stash
中的一些文件。
如何恢复存储库和那些文件?
查看 HEAD
文件,看看它是否是指向例如ref: refs/heads/master
或 SHA 哈希。
如果它是一个指针,那么在 refs/heads/master
中查看它是否有散列。如果有,请在散列上尝试 运行ning git log
以查看是否可以恢复内容。如果可以,git reset --hard HASH
应该做正确的事。
您还可以 运行 git fsck
这将对文件进行一致性检查,并且可能会进一步指示问题出在哪里。您还应该检查 config
文件看起来是否合理(读取;未损坏)。
我认为我损坏了 Git 文件(由于我的虚拟机在 git rebase
期间出现故障),因为解决此问题的方法是删除我的本地文件并重新签出代码。
我尝试重建 Git 索引,但是没有效果。
如果您没有需要提交的文件,那么这可能对您有用,并且可能是一种更快的恢复途径,运行 任何其他建议。
我的虚拟机在 git rebase
期间关闭,现在项目目录根本看不到 Git 存储库。当我执行 git status
时,我得到以下信息:
vagrant@localhost /var/www/crmpicco $ git status
fatal: Not a git repository (or any of the parent directories): .git
我尝试重新初始化存储库,但没有效果:
vagrant@localhost /var/www/crmpicco $ git init
Reinitialized existing Git repository in /var/www/releases/20141013104615/.git/
vagrant@localhost /var/www/crmpicco $ git status
fatal: Not a git repository (or any of the parent directories): .git
在我的 .git 目录中,我有以下内容:
vagrant@localhost /var/www/crmpicco/.git $ ls -all
total 92
drwxr-xr-x+ 9 vagrant vagrant 4096 Jul 8 09:26 .
drwxr-xr-x+ 18 vagrant vagrant 4096 Jul 7 18:00 ..
drwxr-xr-x+ 2 vagrant vagrant 6 Oct 13 2014 branches
-rw-rw-r--+ 1 vagrant vagrant 293 May 6 16:45 COMMIT_EDITMSG
-rw-rw-r--+ 1 vagrant vagrant 637 Jul 8 09:26 config
-rw-r--r--+ 1 vagrant vagrant 73 Oct 13 2014 description
-rw-rw-r--+ 1 vagrant vagrant 4157 Jul 7 17:56 FETCH_HEAD
-rw-rw-r--+ 1 vagrant vagrant 0 Jul 7 18:00 HEAD
drwxr-xr-x+ 2 vagrant vagrant 4096 Oct 13 2014 hooks
-rw-rw-r--+ 1 vagrant vagrant 0 Jul 7 18:00 index
drwxr-xr-x+ 2 vagrant vagrant 20 Oct 13 2014 info
drwxr-xr-x+ 3 vagrant vagrant 28 Oct 13 2014 logs
drwxr-xr-x+ 259 vagrant vagrant 8192 Apr 29 09:31 objects
-rw-rw-r--+ 1 vagrant vagrant 41 Jul 7 17:56 ORIG_HEAD
-rw-r--r--+ 1 vagrant vagrant 3442 Oct 13 2014 packed-refs
drwxrwxr-x+ 2 vagrant vagrant 4096 Jul 7 18:00 rebase-apply
drwxr-xr-x+ 5 vagrant vagrant 55 Jul 7 16:22 refs
我想保留 git stash
中的一些文件。
如何恢复存储库和那些文件?
查看 HEAD
文件,看看它是否是指向例如ref: refs/heads/master
或 SHA 哈希。
如果它是一个指针,那么在 refs/heads/master
中查看它是否有散列。如果有,请在散列上尝试 运行ning git log
以查看是否可以恢复内容。如果可以,git reset --hard HASH
应该做正确的事。
您还可以 运行 git fsck
这将对文件进行一致性检查,并且可能会进一步指示问题出在哪里。您还应该检查 config
文件看起来是否合理(读取;未损坏)。
我认为我损坏了 Git 文件(由于我的虚拟机在 git rebase
期间出现故障),因为解决此问题的方法是删除我的本地文件并重新签出代码。
我尝试重建 Git 索引,但是没有效果。
如果您没有需要提交的文件,那么这可能对您有用,并且可能是一种更快的恢复途径,运行 任何其他建议。