在Ruby on Rails上使用git时发生了这种情况。 完成并创建了几个提交和分支。
git version 1.7.3.4
我使用
意外删除了 .git文件夹git -rf .git
但我在在线git-hub存储库上完成了所有文件和更新。 我想恢复.git文件夹。有问题吗?
答案 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 完成后将它们放回原处。
担心?制作项目的备份副本。