如何从现有 git 存储库中的文件夹创建新的 git 存储库?

发布于 2024-10-26 02:28:47 字数 75 浏览 1 评论 0原文

我想在现有 git 存储库下的文件夹中创建一个新的 git 存储库。我希望将历史记录保留在新存储库中。如何创建这个新的 git 存储库?

I want to create a new git repository of a folder under an existing git repository. I want the history to be preserved in the new repository. How do I create this new git repository?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丢了幸福的猪 2024-11-02 02:28:47

您可以克隆它,然后在克隆上应用过滤器分支,以便拆分该存储库,仅提取您想要的目录(及其完整历史记录)。

请参阅 将子目录分离到单独的 Git 存储库

请注意 git 克隆 --克隆步骤中使用的无硬链接 /XYZ /ABC

--no-hardlinks 开关使 git 在克隆本地存储库时使用真实的文件副本而不是硬链接。

You can clone it, and then apply on the clone a filter-branch in order to split that repository, extracting only the directory you want (with its full history).

See Detach subdirectory into separate Git repository

Note the git clone --no-hardlinks /XYZ /ABC used during the cloning step:

The --no-hardlinks switch makes git use real file copies instead of hardlinking when cloning a local repository.

闻呓 2024-11-02 02:28:47

假设您只想将子目录保留为单独的项目:您可以使用 git filter-branch 来实现。

  1. 创建一个新分支
  2. 定义一个“树过滤器”,按照您想要的方式重新排列签出的副本,最好作为单独的脚本
  3. 运行 git filter-branch --tree-filter=/path/to/script thebranch

您现在有一个与正常开发流无关的单独分支,仅包含子目录。克隆新分支的人只能获得子项目历史记录。

Assuming you only want to keep the subdirectory as a separate project: you can use git filter-branch for that.

  1. Create a new branch
  2. Define a "tree filter" that rearranges a checked out copy the way you want, ideally as a separate script
  3. Run git filter-branch --tree-filter=/path/to/script thebranch

You now have a separate branch that is not related to the normal development stream, containing just the subdirectory. Whoever clones the new branch gets only the subproject history.

深海夜未眠 2024-11-02 02:28:47

您可以克隆它并保留您想要的文件;历史将被保存。

You can clone it and keep the files you want; history will then be preserved.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文