可以删除.git吗?

时间:2011-06-06 00:37:32

标签: git github

在Ruby on Rails上使用git时发生了这种情况。 完成并创建了几个提交和分支。

git version 1.7.3.4

我使用

意外删除了 .git文件夹
git -rf .git

但我在在线git-hub存储库上完成了所有文件和更新。 我想恢复.git文件夹。有问题吗?

  1. 我完全搞砸了?或者
  2. 如果有一种从我的在线git-hub存储库恢复.git的方法,怎么可能 那可以吗?

5 个答案:

答案 0 :(得分:42)

恢复已删除的.git文件夹的唯一方法是:

  • 从某处再次克隆
  • 检查回收站或备份(如果不存在远程存储库)

由于您的文件来自在线github存储库,因此它很简单。只需从删除.git文件夹的目录中再次克隆它:

git init
git remote add origin <repo_address>
git pull origin master

repo_address可以 git@github.com:yourname / yourproject.git

您当地的结账将恢复正常。

如果您的工作副本中有未提交的更改,则需要保留,而不是使用git pull使用git fetch,然后使用git reset --soft本地分支到远程分支,它应该位于。软重置不会更改您的工作副本

答案 1 :(得分:15)

您可以将存储库克隆到其他位置,只需将克隆的.git文件夹复制到已删除的.git文件夹的位置即可。

答案 2 :(得分:0)

如果您编译了您的作品并且它是jar格式。转到.m2 / repository / location并找到该jar文件。将.jar更改为.zip。解压缩文件,你的git存储库应该在那里。

答案 3 :(得分:0)

我认为最好的选择是将回购克隆到一个一次性文件夹中。 并将.git文件夹从该文件夹复制到所需的文件夹位置(已删除.git文件夹的项目文件夹)。

答案 4 :(得分:0)

如果您的存储库中有未提交的更改,您可以这样做。

git init
git remote add origin <YOUR_REPO_ADDRESS>
git fetch
git branch master origin/master 
git reset HEAD -- .
git rebase --autostash

git branch master origin/master 创建一个本地 master 分支来跟踪远程 master 分支。这是必需的,因为在您进行第一次提交之前,您的新存储库不会有本地分支。

Rebase 会将您未提交的暂存代码放在您获取的代码之上。 Autostash 选项将临时存储您编辑的内容,然后在 rebase 完成后将它们放回原处。

担心?制作项目的备份副本。