首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git过滤器-分支不删除文件夹?

Git过滤器-分支不删除文件夹?
EN

Stack Overflow用户
提问于 2012-08-21 10:29:23
回答 1查看 658关注 0票数 3

我想把我的大部分存储库从我自己的SVN服务器转换到托管的远程Git服务器上。我找到了一个两条命令,并将它们转换成一个自动化的shell脚本,以便以更顺畅的方式转换存储库。

总之,所有这些都是有效的,但是现在每当我试图克隆git存储库来运行它时,我就会从托管服务器上获得unexpected EOF-errors。一些大型存储库(2-10次)的导入时间太长.

因此,为了减少存储库的大小,我尝试将filter-branch用于移除文件夹,方法是删除最大的文件夹和图形源文件。这一切都在我的电脑上工作,但当我想上传到git-服务器(经过一段时间的等待),我看到目录和文件仍然在那里!

我尝试使用git repack来确保包也更小,并将存储库克隆到一个新文件夹中,并且它可以解决问题的缩小部分,但是当我继续使用git branch -m trunk master时,我收到了如下错误:

代码语言:javascript
复制
1: error: refname refs/heads/trunk not found
2: fatal: Branch rename failed
3: error: src refspec master does not match any.
4: error: failed to push some refs to 'ssh://git@bitbucket.org/{username}/{projectname}'

我犯了一个新的错误#3,就像在关于某一主题的下列答复上解释的那样,但是我没有任何进展--任何时候.

我意识到这些错误都是连接在一起的,但我不明白为什么(本地)克隆存储库中没有主干,或者当我在另一个repos中只有一个master-branch时,为什么突然有两个分支.

代码语言:javascript
复制
* [new branch]      origin/HEAD -> origin/HEAD
* [new branch]      origin/master -> origin/master

为了长话短说,很多尝试,更短:

  1. 我对一个包含所有历史记录的新文件夹(projectname)执行projectname操作 1b。删除所有过时的文件夹和文件(每个存储库定义)
  2. 我将git init放入一个新的存储库(让我们将其命名为projectname-copy)
  3. 我将所有内容都推入我使用git init --bare bare-repo创建的git init --bare bare-repo存储库中。
  4. 我试图上载到托管服务器,但收到错误或没有更改。

现在我的问题是:有谁有办法缩小存储库的大小(本地的和远程的)并将它们上传到我的git服务器?

PS:我想你会知道写命令行不是我喜欢的事,所以请不要开枪打我:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 10:06:11

没关系,我自己修的。

我做了一个本地克隆,做了一个git repack -A -d,然后做了一个git gc --prune=now && git gc --prune=now --aggressive,然后做了一个裸露的回购。

我必须检查这些分支是否正确,如果不是我用git branch -m [branchname]制作的,然后我可以上传到我的主机。

我想和你们分享一下,:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12052979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档