我在现有的远程存储库中错误地运行了“ git init --bare”。 Git说它重新初始化了现有的git仓库。有什么办法可以撤销此操作?
答案 0 :(得分:1)
我会努力的...将整个目录移至备份目录,使用repo目录的先前名称创建一个新的空目录,然后将.git目录从旧仓库复制(递归)到新目录一。因此,假设您的存储库位于/ home / blah / one_repo(在远程服务器上)
cd /home/blah
mv one_repo one_repo_back
mkdir one_repo
cp -R one_repo_back/.git one_repo/
如果您从另一台主机看,则存储库应该看起来像以前一样。...现在,如果您还想找回工作树中的文件,则:
cd one_repo
git checkout -f the-branch
git reset --hard
您应该完成。
答案 1 :(得分:1)
实际上'git init --bare'只将额外的文件添加到您的仓库中。您可以删除它们。
% cd your-repo
% git status
untracked files:
(use "git add <file>..." to include in what will be committed)
HEAD
config
description
hooks/
info/
% git clean -f -d
Removing HEAD
Removing branches/
Removing config
Removing description
Removing hooks/
Removing info/
Removing objects/
Removing refs/
您的目录现在与“ git init”之前的目录一样干净