【问题标题】:Git submodule add: “a git directory is found locally” issueGit子模块添加:“本地找到一个git目录”问题
【发布时间】:2014-05-31 09:44:22
【问题描述】:

您好,对Git submodule add: “a git directory is found locally” issue 中讨论的问题的一个后续问题

我有很多这样的子模块目录(不知道有多少)

是否有可能初始化 .gitmodules 中列出的所有子模块并强制拉出所有子模块。

此外,我想重置所有子模块并丢弃本地存在的任何更改。

谢谢:)

【问题讨论】:

    标签: git git-submodules


    【解决方案1】:

    是否有可能初始化 .gitmodules 中列出的所有子模块并强制拉出所有子模块。

    您可以删除所有子模块目录,然后重新运行git submodule update。可能是这样的:

    git config -f .gitmodules --list | 
      awk -F= '$1 ~ /.path$/ {print $2}' | 
      xargs rm -rf
    

    这使用git config 列出.gitmodules 中的配置,产生如下输出:

    submodule.common.path=common
    submodule.common.url=https://github.com/purpleidea/puppet-common.git
    

    我们使用awk提取路径信息,然后将其传递给xargs以删除所有子模块目录。然后运行submodule update 将重新填充这些目录:

    $ git submodule update
    Submodule path 'common': checked out '2c0ed2844c606fd806bde0c02e47e79c88fab4a9'
    

    此外,我想重置所有子模块并丢弃本地存在的任何更改。

    因为我们正在删除并重新克隆子模块,这也会丢弃任何本地更改。

    【讨论】:

      猜你喜欢
      • 2014-01-22
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多