`git` 中是否存在与 `--depth instants` 等价的项?

`git` 中是否存在与 `--depth instants` 等价的项?

目前,我正在尝试设置gitSubversion 存储库的前端。

我的 Subversion 存储库是一个大型存储库,由几个相互关联的项目组成:

svn-root
  |-- project1
  |   |-- branches
  |   |-- tags
  |   `-- trunk
  |-- project2
  |   |-- branches
  |   |-- tags
  |   `-- trunk
  `-- project3
      |-- branches
      |-- tags
      `-- trunk

因为有时需要在不同的项目之间移动文件,所以我不想将存储库拆分为单独的存储库。

我打算使用git-svn来设置 git 前端,但我不知道如何将 svn 准确映射到 git 结构。这两个系统处理方式branches非常tags不同,我怀疑这是否可行。

为了简化问题,我会只保留git svn clone整个根目录,让branches/tags/trunk目录就在那里。但这肯定会导致branchestags目录中的文件过多。在 Subversion 中,只需将签出深度设置为 即可immediates,这将仅签出分支/标签标题,而不签出目录内容。但我不知道这是否可以在 中完成git

git-svn 把我搞乱了。我希望有更优雅的解决方案。

答案1

确实没有好的方法可以做到这一点。Git 不支持部分签出。因此,要么将所有内容保存在一个存储库中并一次性签出所有内容,要么使用子模块并将文件移动量保持在最低限度。另请参阅https://stackoverflow.com/questions/1365541/how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history关于后一点。

答案2

不过,你不必检查整个历史记录。以下语句仅检查最近的更改:

git clone --depth 1 [email protected]:project

这样的签出并不适用于编辑和重新签入,但对于共享当前代码库或部署到生产等非常有用。

相关内容