如何使现有的github repo裸仓库

时间:2016-10-19 22:21:38

标签: git github

我有私人github回购。我错误地推错了源代码。我可以将这个repo设置为像裸仓库一样创建吗? 仅仅为了实验,我创建了公共github repo https://github.com/shabbirlimdiwala/shabbir_test_repo.git

我按照以下步骤将此回购设备作为一个裸仓库,

git clone https://github.com/shabbirlimdiwala/shabbir_test_repo.git
cd shabbir_test_repo
mv .git .. 
rm -rf * 
mv ../.git . 
mv .git/* . 
rmdir .git 
git config --bool core.bare true

这些步骤如何使repo成为一个简单的回购?

2 个答案:

答案 0 :(得分:0)

"裸露"并不意味着你认为它意味着什么。 A"裸露"存储库是指没有关联工作目录的Git存储库(也就是说,它是您运行git init --bare ...时获得的)。

从您的评论中听起来好像您只想从存储库中删除现有的存储库历史记录。简单地删除和重新创建GitHub存储库会简单得多,但如果由于某种原因不可能,那么跟随应该做你想做的事情:

  • 克隆远程存储库:

    $ git clone git@github.com:yourusername/yourrepo.git
    
  • 删除所有远程标记:

    $ cd yourrepo
    $ git ls-remote --tags origin | awk '!/\^\{}/ {printf ":%s\n", $2}' | xargs git push origin
    
  • 删除所有远程分支(master分支除外):

    $ git ls-remote --heads origin | awk '{printf ":%s\n", $2}' | xargs git push origin
    
  • 用空分支替换本地主分支。首先,创建一个新的孤儿分支:

    $ git checkout --orphan newmaster
    
  • 清理索引:

    $ git rm -rf .
    
  • 进行一次空提交:

    $ git commit --allow-empty -m 'Initial commit'
    
  • 删除旧的主分支:

    $ git branch -D master
    
  • newmaster分支重命名为master

    $ git branch -m master
    
  • 强制推送到远程存储库:

    $ git push -f origin master
    

现在你的Github存储库是空的。

答案 1 :(得分:0)

您可以创建新的git目录。 添加你的github遥控器并用镜像选项推动它。

  

git remote add https:// ...

     

git push origin --mirror

这将从您的遥控器中删除所有内容,包括标签和分支