Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何将子模块中的更改提交到我的主项目存储库?_Git_Github_Git Submodules - Fatal编程技术网

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

Git 如何将子模块中的更改提交到我的主项目存储库?,git,github,git-submodules,Git,Github,Git Submodules,首先我有一个主项目和一个子模块在里面 我想做的是: 更改子模块的代码 提交到主项目git存储库 让主项目可以跟踪更改 无法将带有的更改提交到子模块的git存储库 事实上,我没有权力去推动它 但我仍然可以从中获得最新的承诺 我想跟踪和更新主项目子模块的变化;同时,我还可以从子模块刷新 有没有更简单的方法来实现这一点?跟踪git子模块中的更改的唯一方法是记录可从远程访问的修订。但是您要做的是对git模块进行更改,并将这些更改记录在父级(即主项目git存储库)中。这是不可能的,因为在添加git

首先我有一个主项目和一个子模块在里面

我想做的是:

  • 更改子模块的代码
  • 提交到主项目git存储库
    • 让主项目可以跟踪更改
  • 无法将带有的更改提交到子模块的git存储库
    • 事实上,我没有权力去推动它
    • 但我仍然可以从中获得最新的承诺
  • 我想跟踪和更新主项目子模块的变化;同时,我还可以从子模块刷新


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

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

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

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

  • 克隆要对其进行更改的存储库。将此克隆到主项目之外

  • 将遥控器更改为您刚刚创建的url,并将更改推送到分支。在这个示例中,我将使用master分支。使用与克隆回购协议相同的url。
    
    git远程设置url源git@github.com:username/repo.git
    git推送源主机
    

  • 然后只需将git子模块更改为指向刚才复制的存储库。看

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