【问题标题】:Storing complete git repository in parent git repository将完整的 git 存储库存储在父 git 存储库中
【发布时间】:2018-01-12 22:26:32
【问题描述】:

当尝试将 git 存储库添加到父 git 存储库时,git 要么完全忽略 .git 文件夹,要么想要将存储库添加为子模块。相反,如果想要将完整的存储库与元信息存储在父存储库内的.git 中。这应该作为一个备份,以防存储库消失或有我不同意的强制推送。

编辑以澄清我的需求:我有很多这些子存储库,并且上游远程有可能消失,因为其中一些子存储库被孤立了很长时间另一方面我想保留.git元数据,以便能够将新的上游更改与我在某些子存储库中的个人更改合并。使用子模块以防子模块远程消失时,您将无法再递归地克隆父存储库。

【问题讨论】:

  • 这不是明智之举。您实际上想要版本控制您的版本控制,这是完全没有必要的。每个 Git 命令都是可逆的,每个克隆都已经是一个完整的副本。
  • 如果上游消失,每台具有最新副本的机器都有所有历史记录(除非他们做了浅克隆。那么他们只会有最新的历史记录)。所以你可以把你的副本上传到上游。

标签: git


【解决方案1】:

我不知道你为什么要在两个地方跟踪相同的元数据,但 git subtree 可能对你有用。

Below example comes from this blog post

git subtree add --prefix .vim/bundle/tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git master --squash

通常的做法是不在主存储库中存储子项目的整个历史记录,但如果要保留它,只需省略 –squash 标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 2011-05-28
    • 2013-02-23
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多