【问题标题】:Where is git submodule update in SourceTree?SourceTree 中的 git 子模块更新在哪里?
【发布时间】:2012-10-05 15:15:39
【问题描述】:

如何更新 SourceTree 中的 git 子模块?

【问题讨论】:

    标签: git git-gui atlassian-sourcetree


    【解决方案1】:

    我自己找不到答案,所以我创建了一个自定义操作。转到首选项、自定义操作,然后输入以下信息: (这是在 Mac 上。您的 git 可执行文件的路径可能会有所不同。)

    【讨论】:

    • 您可能还想使用“submodule update --init --recursive”。如果初始化已经完成,添加“--init”是无害的,如果你新克隆了带有子模块的 repo,则可能有必要。如果您没有引用其他子模块的子模块,则“--recursive”是无害的,如果有,则必不可少。
    【解决方案2】:

    只需双击子模块或左键单击并打开模块

    一旦进入子模块,UI 就像任何 git repo 一样,按下 pull/fetch 以更新到标题。瞧。

    【讨论】:

    • 你确定这是git submodule update 所做的吗?无论如何,我不喜欢git fetchgit pull(因为它们会忽略包含存储库指示的修订。)
    • 好问题!来自 subversion ,我不知道“获取”和“更新”之间的区别。看看answers.atlassian.com/questions/33274/…
    • 如果你问我,这将检查最新版本,而不是检查在主仓库中提交的提交。
    • 这正是我想要的,它也在the documentation 中进行了描述。 "如果您想要在存储库中使用的子模块中有新的更改,您所要做的就是打开子模块(双击)并通过拉取、合并或签出/更新到不同的提交只需手动检查提交...完成此操作后,返回父存储库,您将在子模块上看到未提交的更改,这将在 diff 中显示跟踪提交中的更改:"跨度>
    • git submodule update 的目标是切换到 父 repo 中指定的版本。 (这对于只想使用推荐的子模块的消费者来说是件好事。)另一方面,拉取将从上游存储库带来 最新版本。 (如果您想在子模块上工作,或者如果您想使用最新版本而不管父 repo 指定哪个版本,这会更好。)
    【解决方案3】:

    这里是 版本:

    此命令假定您的 sh.exe 的位置 - 取决于您如何设置 SourceTree,它可能位于其他位置。

    /c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c "git submodule update"""
    

    不确定这是否是一个错误 - 但在我使用的 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.
    

    【讨论】:

    • 似乎不起作用,但这可能是因为 SourceTree 在整个参数字符串周围添加了一对额外的引号。
    【解决方案4】:

    Isuru 提供的link 确实包括如何执行更新(查找“更改您的存储库正在跟踪的子模块提交”)

    简而言之,在主存储库上,

    • 选择子模块下拉菜单
    • 双击您要更新的子模块 - 您会将焦点切换到子模块
    • pull(最新)或 checkout(特定提交)所需的更新
    • 返回主存储库选项卡
    • 主存储库中会有一个未提交的更改(要使用哪个子模块提交)
    • 提交并推送更改

    【讨论】:

    • 基本上这就是你所需要的
    【解决方案5】:

    我使用的是源代码树 v3.4.6,您可以通过菜单 Tools\Options 启用它

    克隆时,你应该启用递归子模块

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 2012-06-10
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 2012-09-14
      相关资源
      最近更新 更多