我的项目结构
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 submodule init在运行后列出所有子模块的名称?
该git submodule foreach命令可以回显子模块的名称,但只有在检出后才能使用,这在init步骤之后没有发生.链中有更多的步骤需要在签出之前发生,我不希望将子模块的名称硬连接到脚本中.
那么是否有一个Git命令来获取所有当前已注册但尚未检出的子模块的名称?
我想使用git子模块.
我需要采取的步骤将我的更改推送到我的项目中
- 从子模块目录添加/ commit/push
- 从父目录添加/提交/推送
我需要采取措施来拉动项目的变化.
- 来自父目录的git pull
- 从父目录更新git子模块
从原始仓库更新子模块的步骤
- 来自子模块目录的git pull
令我担心的是http://git-scm.com/book/en/Git-Tools-Submodules的以下内容
问题是您通常不希望在分离的HEAD环境中工作,因为它很容易丢失更改.如果你做了一个初始子模块更新,在该子模块目录中提交而不创建一个分支工作,然后再从超级项目运行git子模块更新而不同时提交,(?? update/commit/update将失去更改?) Git会在不告诉您的情况下覆盖您的更改.从技术上讲,你不会失去工作,但你不会有一个分支指向它,所以它将有点难以检索.
要避免此问题,请在使用git checkout -b work或等效工作的子模块目录中创建分支.当您第二次执行子模块更新时,它仍将恢复您的工作,但至少您有一个指针可以返回.
我要修改子模块并且不想搞砸,上面的文档简要提到了失去变化的可能性,我不明白可能导致丢失的原因.
我想知道除了上面列出的更多的其他步骤,我需要采取什么来防止损失.特别是几个团队成员修改子模块,他们需要做些什么不搞乱?