【问题标题】:Turn a git subtrees to a plain regular directory and preserve the history将 git 子树转换为普通目录并保留历史记录
【发布时间】:2021-12-25 17:23:58
【问题描述】:

Convert a git submodule to a regular directory and preserve the history in the main tree? 中并行相同的问题 但在 git 子树上。

所以我添加了一个 git 子树,它的内容和历史现在在我的主树中, 现在我想把这样的 git 子树变成一个完整的普通目录,删除 git 知道这样的目录属于子树的知识。我该怎么做?

【问题讨论】:

  • 一种方法是简单地停止使用git subtree 命令。您想“擦除”哪些方面?
  • 我不想将子目录移动到单独的 Git 存储库 @phd,我只想让它留在那里。如果我克隆这样的包含子树 repo,克隆的 repo 知道那里有子树。这就是我喜欢抹去的东西,@ LeGEC。
  • 我曾经看到一个答案,可以列出一个 repo 拥有的所有 git 子树,但现在在任何地方都找不到。所以,基本上,我问的是如何列出一个 repo 拥有的所有 git 子树,以及如何从这样的列表中删除一个。
  • 像这样:stackoverflow.com/a/18339297/7976758 ? (stackoverflow.com/search?q=%5Bgit-subtree%5D+list+subtrees)。 AFAIU 子树在提交消息中标记,因此要删除子树,您需要编辑合并提交消息:stackoverflow.com/a/60401536/7976758

标签: git git-subtree


【解决方案1】:

感谢@phd 和@LeGEC,我现在相信答案与@LeGEC 所说的完全一样,

只需停止使用git subtree 命令

git subtree add 发布时,我认为git repo 中有痕迹,但是it turns out 那,

我浏览了代码(基本上所有这个机制都是一个大的shell脚本文件),所有的跟踪都是通过提交消息完成的,所以所有的函数都使用git log机制和大量的grep来定位它自己的数据.

所以,不,git repo 中除了它的提交消息之外没有任何特殊标记/痕迹,我对此很好——git 子树已经成为一个完整的普通目录,这就是我一直在要求。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多