如何在现有远程存储库中撤消git init --bare

时间:2019-10-15 20:05:52

标签: git

我在现有的远程存储库中错误地运行了“ git init --bare”。 Git说它重新初始化了现有的git仓库。有什么办法可以撤销此操作?

2 个答案:

答案 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”之前的目录一样干净