如何恢复已删除的git项目

如何恢复已删除的git项目,git,Git,我想将名为gh-pages的git分支与主分支合并,但我输入了ph-并按下了自动完成的选项卡按钮。我试了好几次,当我查看文件夹时,什么都没有,只剩下.git文件夹和Readme.md文件 我已经通过运行git reflog检查了日志,仍然可以看到我所做的所有提交。 请告诉我如何恢复这些文件?我还不知道您是如何恢复的,因为合并一个不存在的分支会导致错误消息。以下是一个典型的场景: $ git init metest Initialized empty Git repository in /tmp/

我想将名为
gh-pages
的git分支与主分支合并,但我输入了
ph-
并按下了自动完成的选项卡按钮。我试了好几次,当我查看文件夹时,什么都没有,只剩下
.git
文件夹和
Readme.md
文件

我已经通过运行
git reflog
检查了日志,仍然可以看到我所做的所有提交。
请告诉我如何恢复这些文件?

我还不知道您是如何恢复的,因为合并一个不存在的分支会导致错误消息。以下是一个典型的场景:

$ git init metest
Initialized empty Git repository in /tmp/metest/.git/
$ cd metest
$ echo "file1" >> file1
$ git add file1
$ git commit -m "File 1"
[master (root-commit) 5f56a1d] File1
 1 file changed, 1 insertion(+)
 create mode 100644 file1
$ git checkout -b some
Switched to a new branch 'some'
$ echo "file2" > file2
$ git add file2
$ git commit -m "File2"
[some 47af0d5] File2
 1 file changed, 1 insertion(+)
 create mode 100644 file2
$ git log # Shows 2 commits
$ git checkout master
Switched to branch 'master'
$ git log # Shows 1 commit
$ git merge foo- # Tab completion should show nothing
merge: foo- - not something we can merge
您正在使用的Git版本或某个附属工具中可能存在错误

无论如何,假设您的遥控器是原始的(您没有推动更改),您可以:

  • git签出。
    恢复文件。如果
    git status
    显示一些本地更改,这将起作用
  • git reset
    及其风格,具体取决于您的具体情况(请参阅帮助)
  • 将遥控器克隆到新目录中,查看文件是否存在

我还不知道您是如何做到这一点的,因为合并一个不存在的分支会导致错误消息。以下是一个典型的场景:

$ git init metest
Initialized empty Git repository in /tmp/metest/.git/
$ cd metest
$ echo "file1" >> file1
$ git add file1
$ git commit -m "File 1"
[master (root-commit) 5f56a1d] File1
 1 file changed, 1 insertion(+)
 create mode 100644 file1
$ git checkout -b some
Switched to a new branch 'some'
$ echo "file2" > file2
$ git add file2
$ git commit -m "File2"
[some 47af0d5] File2
 1 file changed, 1 insertion(+)
 create mode 100644 file2
$ git log # Shows 2 commits
$ git checkout master
Switched to branch 'master'
$ git log # Shows 1 commit
$ git merge foo- # Tab completion should show nothing
merge: foo- - not something we can merge
您正在使用的Git版本或某个附属工具中可能存在错误

无论如何,假设您的遥控器是原始的(您没有推动更改),您可以:

  • git签出。
    恢复文件。如果
    git status
    显示一些本地更改,这将起作用
  • git reset
    及其风格,具体取决于您的具体情况(请参阅帮助)
  • 将遥控器克隆到新目录中,查看文件是否存在

此时什么显示git状态?如果文件夹由git管理,则可以恢复git知道的最后一个状态。未提交到Git的本地更改丢失。@EricPlaton它说分支与origin/master是最新的,工作目录是干净的
Git reset--hard
应该可以解决这个问题。文件夹真的是“由Git管理”的吗?我的意思是,他们中有人在某个时候提交给Git的吗(发布
GitCommit
)?只有在它们被提交一次的情况下,您才能恢复它们。如果文件夹未被跟踪,则重置或签出将不会起任何作用。@Cactus我尝试过,但不起作用。上面说**头现在是d1a70fd初始提交**,但我仍然无法获得此时显示git状态的文件夹?如果文件夹由git管理,则可以恢复git知道的最后一个状态。未提交到Git的本地更改丢失。@EricPlaton它说分支与origin/master是最新的,工作目录是干净的
Git reset--hard
应该可以解决这个问题。文件夹真的是“由Git管理”的吗?我的意思是,他们中有人在某个时候提交给Git的吗(发布
GitCommit
)?只有在它们被提交一次的情况下,您才能恢复它们。如果文件夹未被跟踪,则重置或签出将不会起任何作用。@Cactus我尝试过,但不起作用。上面说**头现在是d1a70fd初始提交**,但我仍然无法获取文件夹