gpt4 book ai didi

git - 如何将子模块中的更改提交到我的主项目存储库?

转载 作者:太空狗 更新时间:2023-10-29 14:10:45 24 4
gpt4 key购买 nike

首先我有一个主项目和一个子模块。

我想做的是:

  1. 修改子模块的代码
  2. 提交到主项目 git 存储库
    • 让主项目可以跟踪更改
  3. 未提交到子模块的 git 存储库的更改
    • 事实上我没有权力 push 提交
    • 但我仍然可以从中提取最新的提交

我想跟踪并更新子模块对主项目的更改;同时,我也可以从子模块刷新。

有没有更简单的方法来实现这一目标?

最佳答案

跟踪 git 子模块中更改的唯一方法是记录可从远程访问的修订。但是您要做的是对 git 模块进行更改,并在父级(即主项目 git 存储库)中记录这些更改。这是不可能的,因为 git 只在添加 git 子模块时记录修订号和远程。

这就是 fork 的用武之地。您可以复制存储库的整个历史记录并将其推送到您自己的存储库。我建议将您的更改推送到您当前使用的修订版之上。在等待 pull 请求 merge 时,我一直这样做。如果您不使用 github 并且没有 fork 按钮,您仍然可以使用这些步骤进行 fork。

  1. 使用您正在使用的任何主机在您的帐户上创建一个新的存储库。

  2. 克隆您要更改的存储库。在您的主项目之外克隆它。

  3. 将远程更改为您刚刚创建的 url 并推送包含您的更改的分支。这个例子我将使用 master 分支。使用您用于克隆 repo 的相同 url。
    git remote set-url origin git@github.com:用户名/repo.git
    git push origin master

  4. 然后只需将您的 git 子模块更改为指向您刚刚复制的存储库。看Changing remote repository for a git submodule

每当我对依赖项进行更改并需要等待它被 merge 和批准时,我都会这样做。希望这会有所帮助。

关于git - 如何将子模块中的更改提交到我的主项目存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48740963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com