作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个现有的 git 存储库:
my-repo/
.git/
foo/
foo-content-goes-here
bar/
bar-content-goes-here
我希望获得以下存储库结构:
my-foo-repo/
.git/
foo-content-goes-here
my-bar-repo/
.git
bar-content-goes-here
我看过Detach (move) subdirectory into separate Git repository .这几乎可以满足我的需要。
我运行了这些命令:
$ cd path/to/my-repo/../
$ git clone --no-hardlinks my-repo foo-repo
$ cd foo-repo
$ git remote rm origin
$ git filter-branch --tag-name-filter cat --subdirectory-filter foo \
--prune-empty -- --all
$ git reset --hard
$ git gc --aggressive
$ git prune
我说这几乎行得通。注意到的问题:
git gc --aggressive
这一步为我的存储库花费了 2 个多小时。我有 13 个存储库需要从我当前的单个存储库中提取。我可以编写此过程的脚本,但希望能提供任何加快速度的方法?git log
和 gitk
向我显示新 foo-repo 的预期提交。 gitX向我展示了预期的提交,以及带有旧历史的断开连接的树。 foo-repo 目录的大小比我预期的要大得多,所以大概我还有一些东西需要清理。我不确定如何摆脱这些东西?我什至需要在 push 之前摆脱它吗?最佳答案
您可以反过来尝试:在原始工作场所的工作分支中过滤出您想要的目录,然后仅将该分支推送到新的存储库。
$ cd /path/to/global-repo
$ git branch work-foo master
$ git filter-branch --tag-name-filter cat --subdirectory-filter foo \
--prune-empty work-foo
$ cd /path/to
$ mkdir foo-repo
$ cd foo-repo
$ git init
$ git pull /path/to/global-repo work-foo
如果你走这条路,你不想使用 --all
选项到 filter-branch
。
关于git surgery - 将单个存储库拆分为多个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4669795/
我有一个现有的 git 存储库: my-repo/ .git/ foo/ foo-content-goes-here bar/ bar-content-goes-here
我正在尝试将预训练模型的大小为 3x3x3 的层“con_1”的学习权重复制到新层“con_1_1”,以便新层的大小为 6x3x3(6 个 channel )。我实际上是在尝试将大小为 3x3x3 的
我是一名优秀的程序员,十分优秀!