【问题标题】:Git submodule url changedGit 子模块 url 已更改
【发布时间】:2016-03-09 21:23:31
【问题描述】:

我有一个 Git 项目,它有一个子模块。最近更改了子模块的 url。我已更改 .gitmodules 和配置文件以指向新的 url。我是否应该提交.gitmodules 文件,以便下次我签出我的项目并执行git submodule update --init --recursive 时不会出错?

【问题讨论】:

  • 我读到了。没有人谈论必须如何提交以及提交哪些文件。
  • "您应该能够编辑 .gitmodules 文件以更新 URL,然后运行 ​​git submodule sync 以将该更改反映到超级项目和您的工作副本。"如果这不能回答您的问题,请澄清问题并解释究竟是什么问题。
  • 在此之后必须遵循哪些步骤?我应该提交对 .gitmodule 所做的更改吗?

标签: git url


【解决方案1】:

没有人谈论必须如何提交以及提交哪些文件

无需更改文件,同步/提交:现在只需一个新命令即可完成。

在 Git 2.25(2020 年第一季度)中,“git submodule”学习了一个子命令“set-url”。

参见Denton Liu (Denton-L)commit 26b0610(2019 年 10 月 29 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit 99c4ff1,2019 年 12 月 10 日)

submodule: 教 set-url 子命令

签字人:Denton Liu

目前,如果子模块的上游 URL 发生变化,用户必须手动更改 .gitmodules 文件中的 URL,然后运行 ​​git submodule sync
让我们简化这个过程。

教子模块set-url子命令,它会自动改变.gitmodules文件中的submodule.$name.url属性,然后运行git submodulesync来完成这个过程。

git submodule documentation 现在包括:

set-url [--] <path> <newurl>:

将指定子模块的 URL 设置为&lt;newurl&gt;
然后,它会自动同步子模块的新远程 URL 配置。

【讨论】:

    【解决方案2】:

    是的,在编辑 .gitmodules 之后,您应该提交并推送这些更改,以便所有人都可以使用更改。否则,只有您的本地子模块会指向新 URL,而其他人仍将指向旧 URL。

    但是,您不需要在本地提交更改 URL,如果您尚未提交更改,git 也会切换到新的 URL。

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 1970-01-01
      • 2019-08-09
      • 2014-02-17
      • 2012-06-07
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多