git - 检查分支和子模块

NoM*_*Mad 1 git deployment webhooks git-submodules gitlab

我可以使用哪些函数将所有子模块(本地 repo)同步/初始化/更新到远程分支中的版本?

“同步”(我们称之为,我不是说 git sync!)也必须在以下情况下工作:

  • 一个子模块只被添加到远程分支
  • 子模块中的文件已在本地添加/删除/修改。跟踪或未跟踪。
  • 删除子模块(可选)

本质上,我希望本地 repo 始终与远程分支的版本完全相同。每当我更改子模块中的某些内容时,都无需过多摆弄。所以没有手动ssh'ing到服务器来初始化一个新的子模块,只为了部署脚本工作......

这可以在不克隆(又名传输)整个存储库的情况下实现吗?我选择 git 是为了有一种安全、快速的方式来部署我的源代码。但我能想到的唯一选择是git clone --recursive在它们各自的标签下做一个完整的和检查子模块。在这种情况下,rsync 可能会在同步文件方面做得更好。

oyv*_*ind 6

怎么样git submodule update --init --recursive?它会将子模块更新为正确的提交,在需要时对其进行初始化,并对所有子模块执行此操作,即使它们位于其他子模块中。如果这不会放弃更改,请先尝试git submodule foreach --recursive git reset --hard。