相关疑难解决方法(0)

Git以递归方式更新子模块

我的项目结构

ProjectA
-FrameworkA (submodule)
--Twig (submodule of FrameworkA)
Run Code Online (Sandbox Code Playgroud)

我如何递归更新子模块?我已经尝试了一些git命令(在ProjectA上)

git submodule foreach git pull origin master
Run Code Online (Sandbox Code Playgroud)

要么

git submodule foreach --recursive git pull origin master
Run Code Online (Sandbox Code Playgroud)

但是不能拉扯Twig的文件.

git git-submodules

260
推荐指数
5
解决办法
21万
查看次数

列出Git存储库中的子模块

我有一个Git存储库,里面有几个子模块.如何git submodule init在运行后列出所有子模块的名称?

git submodule foreach命令可以回显子模块的名称,但只有在检出后才能使用,这在init步骤之后没有发生.链中有更多的步骤需要在签出之前发生,我不希望将子模块的名称硬连接到脚本中.

那么是否有一个Git命令来获取所有当前已注册但尚未检出的子模块的名称?

git git-submodules

215
推荐指数
16
解决办法
15万
查看次数

git submodule commit/push/pull

我想使用git子模块.

我需要采取的步骤将我的更改推送到我的项目中

  1. 从子模块目录添加/ commit/push
  2. 从父目录添加/提交/推送

我需要采取措施来拉动项目的变化.

  1. 来自父目录的git pull
  2. 从父目录更新git子模块

从原始仓库更新子模块的步骤

  1. 来自子模块目录的git pull

令我担心的是http://git-scm.com/book/en/Git-Tools-Submodules的以下内容

问题是您通常不希望在分离的HEAD环境中工作,因为它很容易丢失更改.如果你做了一个初始子模块更新,在该子模块目录中提交而不创建一个分支工作,然后再从超级项目运行git子模块更新而不同时提交,(?? update/commit/update将失去更改?) Git会在不告诉您的情况下覆盖您的更改.从技术上讲,你不会失去工作,但你不会有一个分支指向它,所以它将有点难以检索.

要避免此问题,请在使用git checkout -b work或等效工作的子模块目录中创建分支.当您第二次执行子模块更新时,它仍将恢复您的工作,但至少您有一个指针可以返回.

我要修改子模块并且不想搞砸,上面的文档简要提到了失去变化的可能性,我不明白可能导致丢失的原因.

我想知道除了上面列出的更多的其他步骤,我需要采取什么来防止损失.特别是几个团队成员修改子模块,他们需要做些什么不搞乱?

git git-submodules

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

git ×3

git-submodules ×3