0

我决定在 repository -tree 中默认限制可见性范围,以便为精美的东西创建 public 文件夹。现在因为有很多子存储库,我得到了一个痛苦的提交或一些聪明的想法。我不确定最好的方法——我想过用 find 遍历 repos,然后对每个 repo 做一个一致的 -dummy 提交,"default perms lower and polished public things to public dir in the root to get the quality up"但我可能正在重新发明轮子。我不能选择限制子存储库和子模块的数量,因此提交必须从最低的 repo 开始,然后如果使用 find 则一点一点地遍历。

如何处理这种深度 Git repo-repo -tree 更新?

也许相关

  1. Git:如何避免重复提交 sub-sub-sub... Git -repos?

  2. Git:管理和构建项目的工具?

4

1 回答 1

0

使用更好的工具!

避免诸如$ find . -exec git checkout '{}' \;然后递归/手动修复权限之类的黑客行为。有一个名为 Gitslave 的工具可以更轻松地管理不断扩大的投资组合。有价值的文章在这里我还建议您在这里阅读此线程,再次出现 SethRobertson 的文章 - 非常好阅读。

为什么需要 Gitslave?

Happy.git假设您对 repo的结构 进行了更改,例如"Works.git > Project.git > Pictures.git > Happy.git". 然后有人试图从你的裸 -git repo 中提取,例如Project.git. 因为你是一个 git,你只在Happy.git. 现在你的朋友会得到一些令人讨厌的错误。懒惰的 git 会使用 gitslave-tool。

$ mkdir t1; cd t1; mkdir t2; cd t2; mkdir t3; git init; echo "t3" >t3; git add .; git commit -m "t3"; cd ..; git init; echo "t2" >t2; git add .; git commit -m "t2"; git init; echo "t1" >t1; git add .; git commit -m "t1"; cd ..; cd t1/t2/t3; echo "only here">only; git add .; git commit -m "only"; cd ../..; git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# t2/
$ Look you need to do repetitive work because you did not use Gitslave!

安装 Gitslave 的演练

不幸的是,Gitslave 还没有在 Apt-get 中,所以 在这里下载。

它看起来有点像 Maven,更多 在这里。你用它来管理你的项目。首先,您指定超级-repo,然后附加从-repos。

$ git clone http://someGitRepoHere.com/xyz.git super
$ cd super; gits prepare
$ gits attach http://someBareRepo.git yourDirHere

更多关于 153 等行的 信息

当 Gitslave 进入 apt-get 等包管理软件时,我将继续这个答案,因此它对人们更有用。

于 2012-08-19T15:58:13.017 回答