我的项目结构
ProjectA -FrameworkA (submodule) --Twig (submodule of FrameworkA)
字符串如何递归地更新子模块?我已经尝试了一些git命令(在ProjectA根目录下)
git submodule foreach git pull origin master
型或者是
git submodule foreach --recursive git pull origin master
型但无法提取Twig的文件。
qltillow1#
git submodule update --recursive
字符串你可能还想使用--init选项,这将使它初始化任何未初始化的子模块:
git submodule update --init --recursive
型
--init
tsm1rwdh2#
我使用的方法是:
git submodule update --init --recursive git submodule foreach --recursive git fetch git submodule foreach git merge origin master
字符串
5q4ezhmt3#
由于子模块的默认分支可能是notmaster(在我的例子中经常发生这种情况),这就是我自动化完整的Git子模块升级的方式:
master
git submodule init git submodule update git submodule foreach 'git fetch origin; git checkout $(git rev-parse --abbrev-ref HEAD); git reset --hard origin/$(git rev-parse --abbrev-ref HEAD); git submodule update --recursive; git clean -dfx'
7tofc5zh4#
在最近的Git中(我使用的是v2.15.1),下面的代码将递归地将上游子模块的更改合并到子模块中:
git submodule update --recursive --remote --merge
字符串你可以添加--init来初始化任何未初始化的子模块,如果你想变基而不是合并,可以使用--rebase。您需要在之后提交更改:
--rebase
git add . && git commit -m 'Update submodules to latest revisions'
cnjp1d6j5#
不如
git config --global submodule.recurse true
字符串然后忘了它请参阅the git book documentation。
svgewumm6#
您可以将以下内容添加到Makefile:
Makefile
submodule: git submodule update --init --recursive git submodule foreach 'git fetch origin; git checkout $$(git rev-parse --abbrev-ref HEAD); git reset --hard origin/$$(git rev-parse --abbrev-ref HEAD); git submodule update --recursive; git clean -dfx'
字符串然后,您可以在每次想要更新子模块时简单地运行make submodule。
make submodule
wnavrhmk7#
我有一个子模块导致了问题(Sanandrea报告的'fatal:...',上面)。导航到子模块并使用'git clean -dfx'解决了它。
7条答案
按热度按时间qltillow1#
字符串
你可能还想使用--init选项,这将使它初始化任何未初始化的子模块:
型
--init
选项,可能不会更新已经初始化的子模块。在这种情况下,您还应该运行不带--init
选项的命令。tsm1rwdh2#
我使用的方法是:
字符串
5q4ezhmt3#
由于子模块的默认分支可能是not
master
(在我的例子中经常发生这种情况),这就是我自动化完整的Git子模块升级的方式:字符串
7tofc5zh4#
在最近的Git中(我使用的是v2.15.1),下面的代码将递归地将上游子模块的更改合并到子模块中:
字符串
你可以添加
--init
来初始化任何未初始化的子模块,如果你想变基而不是合并,可以使用--rebase
。您需要在之后提交更改:
型
cnjp1d6j5#
不如
字符串
然后忘了它
请参阅the git book documentation。
svgewumm6#
您可以将以下内容添加到
Makefile
:字符串
然后,您可以在每次想要更新子模块时简单地运行
make submodule
。wnavrhmk7#
我有一个子模块导致了问题(Sanandrea报告的'fatal:...',上面)。导航到子模块并使用'git clean -dfx'解决了它。