Git 作为主文件跟踪子模块

Git 作为主文件跟踪子模块,git,git-submodules,git-commit,Git,Git Submodules,Git Commit,嘿,伙计们,我有一个带有子模块的主回购协议,我打算作为一个新的分支处理大部分文件。虽然主回购协议不需要推送到远程主机,但我的子模块可能需要这样做。鉴于我正在将这些文件作为新的分支(在主模块和子模块中)处理,我提出以下问题:- 我应该通过主回购跟踪子模块文件吗 无论是否提交,子模块中的更改是否立即反映在主回购协议中 在主repo中跟踪子模块中的特定文件可以吗 如果我在子模块中进行更改,我必须进行两次提交,一次在子模块中,一次在主repo上,我可以自动执行此过程,还是可以从主repo进行一次提交 主

嘿,伙计们,我有一个带有子模块的主回购协议,我打算作为一个新的分支处理大部分文件。虽然主回购协议不需要推送到远程主机,但我的子模块可能需要这样做。鉴于我正在将这些文件作为新的分支(在主模块和子模块中)处理,我提出以下问题:-

  • 我应该通过主回购跟踪子模块文件吗
  • 无论是否提交,子模块中的更改是否立即反映在主回购协议中
  • 在主repo中跟踪子模块中的特定文件可以吗
  • 如果我在子模块中进行更改,我必须进行两次提交,一次在子模块中,一次在主repo上,我可以自动执行此过程,还是可以从主repo进行一次提交

  • 主回购跟踪带有的子模块

    这意味着子模块中的任何修改都必须提交,并推送到其上游回购,然后提交到主回购

    因此:

  • 我应该通过主回购跟踪子模块文件吗
  • 否:主回购仅作为gitlink跟踪当前子模块头SHA1

  • 无论是否提交,子模块中的更改是否立即反映在主回购协议中
  • 子模块只是主repo中的一个子文件夹:主repo中的任何更改都是可见的,因为子文件夹是可见的。
    但只有当子模块添加、提交并推送所述变更,且主回购完成相同操作(用于记录新的gitlink条目)时,才会记录该变更(意味着其他人将能够克隆主回购并在子模块中看到相同的变更)

  • 在主repo中跟踪子模块中的特定文件可以吗
  • 主回购只跟踪gitlink,其他不跟踪。
    主repo还可以指定(在
    .gitmodules
    中)它想要的,这意味着它将子模块更新为分支的最新版本

  • 如果我在子模块中进行更改,我必须进行两次提交,一次在子模块中,一次在主repo上,我可以自动执行此过程,还是可以从主repo进行一次提交

  • 是的,需要两次提交(和两次git推送)。

    感谢您的反馈……好吧,我会向子模块添加一些
    git
    (子模块只是一个子文件夹),因为子模块中所做的一些更改是特定于项目的,不会推送到repo…所以我将取消跟踪它们