我该如何在SourceTree中更新git子模块?
我该如何在SourceTree中更新git子模块?
我自己找不到答案,所以创建了一个自定义操作。前往“首选项”,“自定义操作”,并输入以下信息:
(此示例为Mac电脑,您的git执行文件路径可能会有所不同。)
只需双击子模块或左键单击并打开该模块
进入子模块后,界面与任何git仓库相同,按下拉/获取以更新到头文件。然后就可以了。
git submodule update
的事情吗?无论如何,我不想使用git fetch
或者git pull
(因为这会忽略包含仓库中指定的版本)。 - wnrphgit submodule update
的目标是切换到父存储库指定的版本。(这对于只想使用推荐子模块的消费者来说很好。) 另一方面,拉取操作将从上游存储库中获取最新版本。(如果您想要使用最新版本,不考虑父存储库指定的版本,或者想要在子模块上工作,那么这更好。) - joeytwiddle这是Windows版本:
该命令假定您的sh.exe
文件位于某个位置 - 具体取决于您如何设置SourceTree。
/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c "git submodule update"""
我不确定这是否是一个bug - 但在我使用的Sourcetree版本中(v1.6.14.0),我发现在末尾加上额外的引号对""
是必需的,否则会存在额外的引号,导致不平衡的语句使得sh
出错:
cmd "/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c "git submodule update""
sh: unexpected EOF while looking for matching `"'
sh: syntax error: unexpected end of file
Completed with errors, see above.